如何为Laravel Filament MultiSelectFilter字段指定默认过滤器值?

suzh9iv8  于 2022-12-01  发布在  其他
关注(0)|答案(2)|浏览(124)

如何在默认过滤器中指定字段“grade',”“new ',”“in_work',”“review',”“pause'?

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

h79rfbju1#

要以这种方式设置筛选器,需要创建一个表单并设置一个请求

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),
                        );
                }),
dzhpxtsq

dzhpxtsq2#

派对来晚了,但我希望这对以后的访客有用。
MultiSelectFilter已过时。另外,可以使用default方法通过提供默认值数组来完成此操作:

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

相关问题