Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

bulavin404's avatar

How to specify default filter values ​for a Laravel Filament MultiSelectFilter field?

How to specify the fields 'grade', 'new', 'in_work', 'review' , 'pause' in the default filter?

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

To set up a filter in this way, you need to make a form and set up a request

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

Please or to participate in this conversation.