diff options
Diffstat (limited to 'src/Toolbar')
-rw-r--r-- | src/Toolbar/Filter.php | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Toolbar/Filter.php b/src/Toolbar/Filter.php index ebda2c6..19f29cc 100644 --- a/src/Toolbar/Filter.php +++ b/src/Toolbar/Filter.php @@ -2,7 +2,21 @@ namespace Lightscale\LaralightTables\Toolbar; +use Closure; + abstract class Filter extends Item { + protected ?Closure $filterCallback = null; + + public function filter(callable $filterCB): static + { + $this->filterCallback = $filterCB; + return $this; + } + + public function applyFilter(Builder $query): void + { + ($this->filterCallback)($query, $value); + } } |