Для создания фильтров используются так же поля, они отображаются только на главной странице раздела.
Чтобы указать по каким полям осуществлять фильтрацию данных,
достаточно в вашем ресурсе модели в методе filters()
,
вернуть массив с необходимыми полями.
Если метод отсутствует, либо возвращает пустой массив, то фильтры не будут отображаться
Некоторые поля не могут участвовать в построении запроса на фильтрацию, поэтому они будут автоматически исключены из списка фильтров
namespace App\MoonShine\Resources; use App\Models\Post;use MoonShine\Fields\Text; use MoonShine\Resources\ModelResource; class PostResource extends ModelResource{ protected string $model = Post::class; protected string $title = 'Posts'; //... public function filters(): array { return [ Text::make('Title', 'title'), ]; } //...}
Поля являются ключевым звеном построения форм в админ-панели Moonshine.
Подробнее о Полях
Если необходимо кешировать состояние фильтров, воспользуйтесь свойством saveFilterState
в ресурсе.
namespace App\MoonShine\Resources; use App\Models\Post;use MoonShine\Resources\ModelResource; class PostResource extends ModelResource{ protected string $model = Post::class; protected string $title = 'Posts'; protected bool $saveFilterState = true; //...}