@@ -14,6 +14,7 @@ Simplest filter type. It can filter by one or multiple fields.
1414{% tabs %}
1515{% tab title="PHP (recommended)" %}
1616{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
17+
1718``` php
1819<?php
1920
@@ -26,16 +27,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
2627use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
2728use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
2829use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
29- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
30+ use Sylius\Component\ Grid\Attribute\AsGrid ;
3031
31- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
32+ #[AsGrid(
33+ resourceClass: User::class,
34+ name: 'app_user',
35+ )]
36+ final class UserGrid extends AbstractGrid
3237{
33- public static function getName(): string
34- {
35- return 'app_user';
36- }
37-
38- public function buildGrid(GridBuilderInterface $gridBuilder): void
38+ public function __invoke(GridBuilderInterface $gridBuilder): void
3939 {
4040 $gridBuilder
4141 ->withFilters(
@@ -54,11 +54,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
5454 )
5555 ;
5656 }
57-
58- public function getResourceClass(): string
59- {
60- return User::class;
61- }
6257}
6358```
6459{% endcode %}
@@ -122,6 +117,7 @@ return static function (GridConfig $grid): void {
122117{% tabs %}
123118{% tab title="PHP (recommended)" %}
124119{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
120+
125121``` php
126122<?php
127123
@@ -134,16 +130,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
134130use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
135131use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
136132use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
137- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
133+ use Sylius\Component\ Grid\Attribute\AsGrid ;
138134
139- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
135+ #[AsGrid(
136+ resourceClass: User::class,
137+ name: 'app_user',
138+ )]
139+ final class UserGrid extends AbstractGrid
140140{
141- public static function getName(): string
142- {
143- return 'app_user';
144- }
145-
146- public function buildGrid(GridBuilderInterface $gridBuilder): void
141+ public function __invoke(GridBuilderInterface $gridBuilder): void
147142 {
148143 $gridBuilder
149144 ->withFilters(
@@ -157,11 +152,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
157152 )
158153 ;
159154 }
160-
161- public function getResourceClass(): string
162- {
163- return User::class;
164- }
165155}
166156```
167157{% endcode %}
@@ -233,6 +223,7 @@ You can achieve it like this:
233223{% tabs %}
234224{% tab title="PHP (recommended)" %}
235225{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
226+
236227``` php
237228<?php
238229
@@ -245,16 +236,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
245236use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
246237use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
247238use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
248- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
239+ use Sylius\Component\ Grid\Attribute\AsGrid ;
249240
250- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
241+ #[AsGrid(
242+ resourceClass: User::class,
243+ name: 'app_user',
244+ )]
245+ final class UserGrid extends AbstractGrid
251246{
252- public static function getName(): string
253- {
254- return 'app_user';
255- }
256-
257- public function buildGrid(GridBuilderInterface $gridBuilder): void
247+ public function __invoke(GridBuilderInterface $gridBuilder): void
258248 {
259249 $gridBuilder
260250 ->withFilters(
@@ -270,11 +260,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
270260 )
271261 ;
272262 }
273-
274- public function getResourceClass(): string
275- {
276- return User::class;
277- }
278263}
279264```
280265{% endcode %}
@@ -333,6 +318,7 @@ you will create an input field that filters user objects based on whether their
333318{% tabs %}
334319{% tab title="PHP (recommended)" %}
335320{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
321+
336322``` php
337323<?php
338324
@@ -345,16 +331,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
345331use Sylius\Bundle\GridBundle\Builder\Filter\BooleanFilter;
346332use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
347333use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
348- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
334+ use Sylius\Component\ Grid\Attribute\AsGrid ;
349335
350- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
336+ #[AsGrid(
337+ resourceClass: User::class,
338+ name: 'app_user',
339+ )]
340+ final class UserGrid extends AbstractGrid
351341{
352- public static function getName(): string
353- {
354- return 'app_user';
355- }
356-
357- public function buildGrid(GridBuilderInterface $gridBuilder): void
342+ public function __invoke(GridBuilderInterface $gridBuilder): void
358343 {
359344 $gridBuilder
360345 ->withFilters(
@@ -367,11 +352,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
367352 )
368353 ;
369354 }
370-
371- public function getResourceClass(): string
372- {
373- return User::class;
374- }
375355}
376356```
377357{% endcode %}
@@ -426,6 +406,7 @@ This filter checks if a chosen datetime field is between given dates.
426406{% tabs %}
427407{% tab title="PHP (recommended)" %}
428408{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
409+
429410``` php
430411<?php
431412
@@ -438,16 +419,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\DateFilter;
438419use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
439420use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
440421use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
441- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
422+ use Sylius\Component\ Grid\Attribute\AsGrid ;
442423
443- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
424+ #[AsGrid(
425+ resourceClass: User::class,
426+ name: 'app_user',
427+ )]
428+ final class UserGrid extends AbstractGrid
444429{
445- public static function getName(): string
446- {
447- return 'app_user';
448- }
449-
450- public function buildGrid(GridBuilderInterface $gridBuilder): void
430+ public function __invoke(GridBuilderInterface $gridBuilder): void
451431 {
452432 $gridBuilder
453433 ->withFilters(
@@ -462,11 +442,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
462442 )
463443 ;
464444 }
465-
466- public function getResourceClass(): string
467- {
468- return User::class;
469- }
470445}
471446```
472447{% endcode %}
@@ -523,6 +498,7 @@ This type filters by a chosen entity.
523498{% tabs %}
524499{% tab title="PHP (recommended)" %}
525500{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
501+
526502``` php
527503<?php
528504
@@ -535,16 +511,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\EntityFilter;
535511use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
536512use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
537513use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
538- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
514+ use Sylius\Component\ Grid\Attribute\AsGrid ;
539515
540- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
516+ #[AsGrid(
517+ resourceClass: User::class,
518+ name: 'app_user',
519+ )]
520+ final class UserGrid extends AbstractGrid
541521{
542- public static function getName(): string
543- {
544- return 'app_user';
545- }
546-
547- public function buildGrid(GridBuilderInterface $gridBuilder): void
522+ public function __invoke(GridBuilderInterface $gridBuilder): void
548523 {
549524 $gridBuilder
550525 ->withFilters(
@@ -561,11 +536,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
561536 )
562537 ;
563538 }
564-
565- public function getResourceClass(): string
566- {
567- return User::class;
568- }
569539}
570540```
571541{% endcode %}
@@ -637,6 +607,7 @@ This filter checks if an amount is within the specified range and is in the sele
637607{% tabs %}
638608{% tab title="PHP (recommended)" %}
639609{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
610+
640611``` php
641612<?php
642613
@@ -649,16 +620,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
649620use Sylius\Bundle\GridBundle\Builder\Filter\MoneyFilter;
650621use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
651622use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
652- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
623+ use Sylius\Component\ Grid\Attribute\AsGrid ;
653624
654- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
625+ #[AsGrid(
626+ resourceClass: User::class,
627+ name: 'app_user',
628+ )]
629+ final class UserGrid extends AbstractGrid
655630{
656- public static function getName(): string
657- {
658- return 'app_user';
659- }
660-
661- public function buildGrid(GridBuilderInterface $gridBuilder): void
631+ public function __invoke(GridBuilderInterface $gridBuilder): void
662632 {
663633 $gridBuilder
664634 ->withFilters(
@@ -676,11 +646,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
676646 )
677647 ;
678648 }
679-
680- public function getResourceClass(): string
681- {
682- return User::class;
683- }
684649}
685650```
686651{% endcode %}
@@ -748,6 +713,7 @@ This filter checks if the specified field contains any value
748713{% tabs %}
749714{% tab title="PHP (recommended)" %}
750715{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
716+
751717``` php
752718<?php
753719
@@ -760,16 +726,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\ExistsFilter;
760726use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
761727use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
762728use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
763- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
729+ use Sylius\Component\ Grid\Attribute\AsGrid ;
764730
765- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
731+ #[AsGrid(
732+ resourceClass: User::class,
733+ name: 'app_user',
734+ )]
735+ final class UserGrid extends AbstractGrid
766736{
767- public static function getName(): string
768- {
769- return 'app_user';
770- }
771-
772- public function buildGrid(GridBuilderInterface $gridBuilder): void
737+ public function __invoke(GridBuilderInterface $gridBuilder): void
773738 {
774739 $gridBuilder
775740 ->withFilters(
@@ -783,11 +748,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
783748 )
784749 ;
785750 }
786-
787- public function getResourceClass(): string
788- {
789- return User::class;
790- }
791751}
792752```
793753{% endcode %}
@@ -843,6 +803,7 @@ This type filters by a value chosen from the defined list
843803{% tabs %}
844804{% tab title="PHP (recommended)" %}
845805{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
806+
846807``` php
847808<?php
848809
@@ -855,16 +816,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
855816use Sylius\Bundle\GridBundle\Builder\Filter\SelectFilter;
856817use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
857818use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
858- use Sylius\Bundle\GridBundle\ Grid\ResourceAwareGridInterface ;
819+ use Sylius\Component\ Grid\Attribute\AsGrid ;
859820
860- final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
821+ #[AsGrid(
822+ resourceClass: User::class,
823+ name: 'app_user',
824+ )]
825+ final class UserGrid extends AbstractGrid
861826{
862- public static function getName(): string
863- {
864- return 'app_user';
865- }
866-
867- public function buildGrid(GridBuilderInterface $gridBuilder): void
827+ public function __invoke(GridBuilderInterface $gridBuilder): void
868828 {
869829 $gridBuilder
870830 ->withFilters(
@@ -886,11 +846,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
886846 )
887847 ;
888848 }
889-
890- public function getResourceClass(): string
891- {
892- return User::class;
893- }
894849}
895850```
896851{% endcode %}
0 commit comments