如何指定默认筛选器值​Laravel Filament MultiSelectFilter字段



如何在默认筛选器中指定字段"grade"、"new"、"in_work"、"review"、"pause"?

MultiSelectFilter::make('status')
->options([
'grade' => 'Оценка',
'new' => 'Новая',
'in_work' => 'В работе',
'review' => 'На проверке',
'pause' => 'На паузе',
'ready' => 'Готово',
'canceled' => 'Отменена',
])
->label('Статус'),

要以这种方式设置过滤器,您需要制作一个表单并设置一个请求

MultiSelectFilter::make('status')
->form([
FormsComponentsMultiSelect::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),
);
}),

派对迟到了,但我希望这对未来的访客有用。

MultiSelectFilter已弃用。此外,这可以使用default方法,通过提供默认值数组来完成:

SelectFilter::make('status')
->multiple()
->options([
'grade' => 'Оценка',
'new' => 'Новая',
'in_work' => 'В работе',
'review' => 'На проверке',
'pause' => 'На паузе',
'ready' => 'Готово',
'canceled' => 'Отменена',
])->label('Статус')->default(['grade', 'new', 'in_work', 'review', 'pause']),

最新更新