如何在默认过滤器中指定字段“grade”、“new”、“in_work”、“review”、“pause”?
MultiSelectFilter::make('status')
->options([
'grade' => 'Оценка',
'new' => 'Новая',
'in_work' => 'В работе',
'review' => 'На проверке',
'pause' => 'На паузе',
'ready' => 'Готово',
'canceled' => 'Отменена',
])
->label('Статус'),
最佳答案
要以这种方式设置过滤器,您需要制作一个表单并设置一个请求
MultiSelectFilter::make('status')
->form([
Forms\Components\MultiSelect::make('status')
->options([
'grade' => 'Оценка',
'new' => 'Новая',
'in_work' => 'В работе',
'review' => 'На проверке',
'pause' => 'На паузе',
'ready' => 'Готово',
'canceled' => 'Отменена',
])->default(array('grade', 'new', 'in_work', 'review', 'pause'))
->label('Статус'),
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['status'],
fn (Builder $query, $status): Builder => $query->whereIn('status', $status),
);
}),
关于laravel - 如何为 Laravel Filament MultiSelectFilter 字段指定默认过滤器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70855150/