Для фильтрации в списке ресурсов нужно создать класс фильтра для каждого фильтруемого поля и добавить его в список фильтров в свойство $filters.
<?php
namespace App\Http\Livewire\Admin\Posts;
use App\Http\Livewire\Filters\TypeFilter;
...
class PostList extends ResourceListComponent
{
...
// Фильтры
public array $filters = [
TypeFilter::class
];
public function columns(): array
{
...
}
}
Доступно несколько типов фильтров.
app/Http/Livewire/Filters/TypeFilter.php
<?php
namespace App\Http\Livewire\Filters;
use WebVovan\RockCms\Http\Livewire\Filters\SelectFilter;
class TypeFilter extends SelectFilter
{
public string $field = 'author';
public string $label = 'Автор';
public array $data = [
[
'title' => 'администратор',
'value' => 'admin',
],
[
'title' => 'менеджер',
'value' => 'manager',
],
];
public function builder()
{
$this->builder->where('author', $this->value);
}
}