Mercurial > packages > framework
annotate src/Traits/Filterable.php @ 2:b44434aaa767
Moving around the components.
Made a big step in the right direction with the Builder and named joins being accessible.
| author | luka |
|---|---|
| date | Wed, 18 Jun 2025 22:28:47 -0400 |
| parents | 56d9c64d64aa |
| children |
| rev | line source |
|---|---|
|
1
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
1 <?php |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
2 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
3 namespace Wizard\Framework\Traits; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
4 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
5 trait Filterable |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
6 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
7 protected static $filters = []; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
8 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
9 public function scopeFilter($query, $validated) |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
10 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
11 $filters = static::$filters; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
12 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
13 foreach ($filters as $key => $filter) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
14 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
15 if (isset($validated[$key])) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
16 if (isset($filter['callback'])) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
17 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
18 } else { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
19 switch ($filter['type']) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
20 case 'value': |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
21 default: |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
22 $this->valueFilter($query, $filter, $validated[$key]); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
23 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
24 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
25 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
26 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
27 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
28 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
29 public function valueFilter($query, $filter, $value) |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
30 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
31 $query->where($filter['table'].'.'.$filter['column_name'], '=', $value); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
32 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
33 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
34 // filter for dates |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
35 public function dateFilter() {} |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
36 } |
