TASSILI Docs
search
menu
TASSILI Docs
search
search
Filters
By default already 4 filter are created.
  • search
  • paginationPerPage
  • orderByField
  • orderDirection
If you want to persist your filters in session do this in the public $sessionFilter array.
$data['sessionFilter'] = ['quantity'];
If you want to create cutoms filters, put yours filters in the customFilterList() method. By default already 1 custom filter is created. You can create queries for yours filters in initQuery() method.
use Tassili\Crud\Filters\FilterText;

public function initFilter(Request $request)
{
    $this->utility->filterList([
        FilterText::make('name'),
    ]);
}

There are 5 types of filters.
1) Filter type Text
use Tassili\Free\Filters\FilterText;

FilterText::make('name')

Create your query for Text Filter.
if ($request->filled('name')) {
    $this->query->where('name', $request->name);
}
2) Filter type Checkbox
use Tassili\Free\Filters\FilterCheckbox;

FilterCheckbox::make('name')

Create your query for Checkbox.

if ($request->filled('is_active')) {
    $isActive = filter_var($request->is_active, FILTER_VALIDATE_BOOLEAN);
    $this->query->where('is_active', $isActive);
}
3) Filter type Select
use Tassili\Free\Filters\FilterSelect;

FilterSelect::make('name')
  ->params([
    'contents' => [0, 1, 2],
    'labels'   => ['Porshe', 'Ferrari', 'Mercedes']
  ])

Create your query for Select.
if ($request->filled('name')) {
    $this->query->where('name', $request->name);
}
4) Filter type Date
use Tassili\Free\Filters\FilterDate;

FilterDate::make('name')
  ->min('2024-11-12') // optional
  ->max('2025-11-12') // optional

Create your query for Date.
if ($request->filled('name')) {
    $this->query->where('name', $request->name);
}
5) Filter type Number
use Tassili\Free\Filters\FilterNumber;

FilterNumber::make('name')
  ->min(1) // optional
  ->max(20) // optional
  ->step(0.2) // optional

Create your query for Number.
if ($request->filled('name')) {
    $this->query->where('name', $request->name);
}