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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }