@@ -295,7 +295,7 @@ Using Serialization Groups Attributes
295
295
-------------------------------------
296
296
297
297
You can add :ref: `#[Groups] attributes <component-serializer-attributes-groups-attributes >`
298
- to your class::
298
+ to your class properties ::
299
299
300
300
// src/Entity/Product.php
301
301
namespace App\Entity;
@@ -321,7 +321,37 @@ to your class::
321
321
private string $description;
322
322
}
323
323
324
- You can now choose which groups to use when serializing::
324
+ You can also use the ``#[Groups] `` attribute on class level::
325
+
326
+ #[ORM\Entity]
327
+ #[Groups(['show_product'])]
328
+ class Product
329
+ {
330
+ #[ORM\Id]
331
+ #[ORM\GeneratedValue]
332
+ #[ORM\Column(type: 'integer')]
333
+ #[Groups(['list_product'])]
334
+ private int $id;
335
+
336
+ #[ORM\Column(type: 'string', length: 255)]
337
+ #[Groups(['list_product'])]
338
+ private string $name;
339
+
340
+ #[ORM\Column(type: 'text')]
341
+ private string $description;
342
+ }
343
+
344
+ In this example, the ``id `` and the ``name `` properties belong to the
345
+ ``show_product `` and ``list_product `` groups. The ``description `` property
346
+ only belongs to the ``show_product `` group.
347
+
348
+ .. versionadded :: 6.4
349
+
350
+ The support of the ``#[Groups] `` attribute on class level was
351
+ introduced in Symfony 6.4.
352
+
353
+ Now that your groups are defined, you can choose which groups to use when
354
+ serializing::
325
355
326
356
use Symfony\Component\Serializer\Context\Normalizer\ObjectNormalizerContextBuilder;
327
357
0 commit comments