HOGGAR Docs
Version 1.x
search
search
menu
HOGGAR 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.
public $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 Hoggarcrud\Hoggar\Filters\FilterText;

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

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

FilterText::make('name')

Create your query for Text Filter.
if ($request->filled('name')) {
    $this->queryFilter = $this->queryFilter->where('name', $request->name);
}
2) Filter type Checkbox
use Hoggarcrud\Hoggar\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->queryFilter = $this->queryFilter->where('is_active', $isActive);
}
3) Filter type Select
use Hoggarcrud\Hoggar\Filters\FilterSelect;

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

Create your query for Select.
if ($request->filled('name')) {
    $this->queryFilter = $this->queryFilter->where('name', $request->name);
}
4) Filter type Date
use Hoggarcrud\Hoggar\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->queryFilter = $this->queryFilter->where('name', $request->name);
}
5) Filter type Number
use Hoggarcrud\Hoggar\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->queryFilter = $this->queryFilter->where('name', $request->name);
}