Hello,

je voulais savoir si il y avait un moyen de gérer différement les attributes que l'on veut récupérer suivant si c'est une reference à une autre entité ou un appel direct.

Exemple :

users/{id}
{
        "object": "user"
        "id": "1BdTuUq6DpUqLwnMjdtrt5",
        "lastname": "Doe",
        "firstname": "John",
            "avatar": null,
            "updated_at": 1631698286
            "created_at": 1631698286,
            "deleted_at": null,
        }
affairs/{id}
{
"object": "affair"
"id": "1BdTuVAmbHJ1my8qhQyAf4",
"name": "Alias quo voluptatem.",
    "user": {
              "object": "user"
               "id": "1BdTuUq6DpUqLwnMjdtrt5",
                "lastname": "Doe",
                "firstname": "John"
            }
        }

Je n'arrive pas trop à voir avec les groups.
Est ce qu'il y a un package qui pourrai simplifier la gestion dex groups/attributs/entité suivant le context ?
Je ne sais pas trop ce que je dois chercher.

Merci

3 réponses


Bonjour,
Oui, tu peux utiliser des groupes de sérialization pour gérer les attributs qui seront récupérés selon les cas.
Il n'y a pas de bundle a ajouter, c'est dans les composants de symfony.
Par exemple dans ton entité User tu peux ajouter une annotation

@Groups({"user:read", "affair:read"})

pour les champs visibles dans tes 2 points d'entrée (users/{id} et affairs/{id}).

Tu trouveras la doc sur le serializer de symfony à cette adresse : https://symfony.com/doc/current/components/serializer.html
Sinon, un tuto très bien fait sur le serializer ici : https://www.youtube.com/watch?v=SG7GgcnR1F4

Je comprend bien le principe des groupes et j'ai deja lu la doc et regarder la video de Lior.
Mais avec ce principe je vais devoir mettre un group sur chaque attributs qui est en reference/child ?
Je ne peux pas faire un tableau de groupe avec tout dans un fichier ou un truc du genre ?

moi je les gère dans avec les annotations mais il est possible d'utiliser des conf en fichiers yaml pour éviter de passer dans toutes ses entités.