Для создания фильтров также используются поля: они отображаются только на главной странице раздела.
Чтобы указать, по каким полям фильтровать данные, достаточно в вашем ресурсе модели в методе 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;//...}