Skip to content

Commit

Permalink
Add taxonomy example.
Browse files Browse the repository at this point in the history
Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
  • Loading branch information
crynobone committed Nov 3, 2019
1 parent 3f4e2e6 commit 04d8701
Showing 1 changed file with 39 additions and 8 deletions.
47 changes: 39 additions & 8 deletions README.md
Expand Up @@ -17,6 +17,7 @@ Database/Eloquent Query Builder filters for Laravel
+ [Search with wildcard](#search-with-wildcard)
+ [Search with JSON path](#search-with-json-path)
+ [Search with Relations](#search-with-relations)
- [Taxonomy Queries](#taxonomy-queries)

## Installation

Expand Down Expand Up @@ -168,17 +169,47 @@ where (
or `name` like '%Administrator'
or `name` like '%Administrator%'
) or exists (
select * from "roles"
inner join "user_role"
on "roles"."id" = "user_role"."role_id"
where "users"."id" = "user_role"."user_id"
select * from `roles`
inner join `user_role`
on `roles`.`id` = `user_role`.`role_id`
where `users`.`id` = `user_role`.`user_id`
and (
"name" like 'Administrator'
or "name" like 'Administrator%'
or "name" like '%Administrator'
or "name" like '%Administrator%'
`name` like 'Administrator'
or `name` like 'Administrator%'
or `name` like '%Administrator'
or `name` like '%Administrator%'
)
)
)
```

### Taxonomy Queries

```php
use App\User;
use Laravie\QueryFilter\Taxonomy;

$query = App\User::query();

$taxonomy = new Taxonomy(
'is:admin email:crynobone@gmail.com', [
'email:*' => static function ($query, $value) {
return $query->where('email', '=', $value);
},
'role:[]' => static function ($query, array $value) {
return $query->whereIn('role', $value);
},
'is:admin' => static function ($query) {
return $query->where('admin', '=', 1);
},
],
);

$taxonomy->apply($query)->get();
```

```sql
select * from `user`
where `email`='crynobone@gmail.com'
and `admin`=1;
```

0 comments on commit 04d8701

Please sign in to comment.