1414namespace App \Grid ;
1515
1616use App \Entity \Book ;
17+ use App \Enum \BookCategory ;
1718use Sylius \Bundle \GridBundle \Builder \Action \Action ;
1819use Sylius \Bundle \GridBundle \Builder \Action \CreateAction ;
1920use Sylius \Bundle \GridBundle \Builder \Action \DeleteAction ;
2223use Sylius \Bundle \GridBundle \Builder \ActionGroup \BulkActionGroup ;
2324use Sylius \Bundle \GridBundle \Builder \ActionGroup \ItemActionGroup ;
2425use Sylius \Bundle \GridBundle \Builder \ActionGroup \MainActionGroup ;
26+ use Sylius \Bundle \GridBundle \Builder \Field \EnumField ;
2527use Sylius \Bundle \GridBundle \Builder \Field \StringField ;
28+ use Sylius \Bundle \GridBundle \Builder \Filter \EnumFilter ;
2629use Sylius \Bundle \GridBundle \Builder \Filter \StringFilter ;
2730use Sylius \Bundle \GridBundle \Builder \GridBuilderInterface ;
2831use Sylius \Bundle \GridBundle \Grid \AbstractGrid ;
@@ -39,9 +42,12 @@ public function buildGrid(GridBuilderInterface $gridBuilder): void
3942 {
4043 $ gridBuilder
4144 ->orderBy ('title ' )
42- ->addFilter (
45+ ->withFilters (
4346 StringFilter::create ('search ' , ['title ' , 'authorName ' ])
4447 ->setLabel ('sylius.ui.search ' ),
48+ EnumFilter::create (name: 'category ' , enumClass: BookCategory::class, field: 'category ' )
49+ ->addFormOption ('choice_label ' , fn (BookCategory $ choice ) => $ choice ->value )
50+ ->setLabel ('app.ui.category ' ),
4551 )
4652 ->addField (
4753 StringField::create ('title ' )
@@ -53,6 +59,11 @@ public function buildGrid(GridBuilderInterface $gridBuilder): void
5359 ->setLabel ('app.ui.author_name ' )
5460 ->setSortable (true ),
5561 )
62+ ->addField (
63+ EnumField::create ('category ' )
64+ ->setLabel ('app.ui.category ' )
65+ ->setSortable (true ),
66+ )
5667 ->addActionGroup (
5768 MainActionGroup::create (
5869 CreateAction::create (),
0 commit comments