IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

erreur lors d'une dénormalisation de collections


Sujet :

Symfony PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut erreur lors d'une dénormalisation de collections
    Bonjour,

    je me forme sur Api Platform et lis donc la documentation à ce sujet. Notamment la dénormalisation !
    J'en suis donc rendu ici:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #[ApiResource(
        collectionOperations: [
            'POST' => ['denormalization_context' => ['groups' => 'write']],
            'GET' => ['normalization_context' => ['groups' => 'read']],
        ]
    )]
    #[ORM\Entity(repositoryClass: ManufacturersRepository::class)]
    class Manufacturers
    {
        #[ORM\Id]
        #[ORM\GeneratedValue]
        #[ORM\Column]
        private ?int $id = null;
     
        #[ORM\Column(length: 255)]
        #[Asserts\NotBlank()]
        #[Groups(['write', 'read'])]
        private ?string $name = null;
     
        #[ORM\Column(type: Types::TEXT)]
        #[Asserts\NotBlank]
        #[Groups(['write', 'read'])]
        private ?string $description = null;
     
        #[ORM\Column(length: 3)]
        #[Asserts\NotBlank]
        #[Groups(['write', 'read'])]
        private ?string $countryCode = null;
     
        #[ORM\Column(type: Types::DATETIME_MUTABLE)]
        #[Asserts\NotNull()]
        #[Groups(['read', 'write'])]
        private ?\DateTimeInterface $listedDate = null;
     
        #[ORM\OneToMany(mappedBy: 'manufacturer', targetEntity: Products::class)]
        private Collection $products;

    Rien de plus classique, Mais lorsque je veux créer un fabriquant j'ai une erreur:
    "ApiPlatform\\Core\\Metadata\\Property\\Factory\\SerializerPropertyMetadataFactory::transformReadWrite(): Argument #5 ($denormalizationGroups) must be of type ?array, string given, called in ... Factory/SerializerPropertyMetadataFactory.php on line 65"(Mais , la création est effectuée: j'ai bien un nouveau fabriquant dans ma base !)

    Donc oui, il faut bien rentrer un tableau dans cette fonction pour $denormalizationGroups. Mais je ne vois pas où est mon erreur !

    Même problème si j'essaie de façon générale: $denormalizationContext: ['groups' => 'write']
    Ma seule solution, pour l'instant, est de renoncer à la dénormalisation et donc à ma propriété products dans ma classe ...(car l'Api me demandera automatiquement des produits).

    Assez embêtant je dois avouer. Mais je n'ai pas encore trouvé de solution pour paramétrer sans erreurs. Donc j'espère que c'est une erreur toute bête de ma part,
    sinon, ma formation sur Api Platform ne va pas être sympas....

    Si quelqu'un vois mon erreur ( ou bien une solution ), merci d'avance.

    Bon pas besoin de chercher 'POST' => ['denormalization_context' => ['groups' => ['write']]]En même temps c'est pas très intuitif: on pourrait avoir plusieurs groupes différents pour une dénormalisation dans une collection?? ( jamais vu ça dans une tutoriel )

    Laurent.

  2. #2
    Expert confirmé

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Billets dans le blog
    5
    Par défaut
    j'ai ceci pour mes annotations @Groups({"read"}) mais je n'etais pas en php 8. Essaye aussi les doubles quotes

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut
    Merci , mais j'ai trouvé : le write doit être dans un tableau, comme je l'ai indiqué à la fin de mon post...c'est juste que ça ne me sautait pas aux yeux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 28
    Dernier message: 28/07/2005, 14h12
  2. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32
  3. [JSP] erreur lors d'une connexion à mySQL
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/08/2004, 16h48
  4. Réponses: 2
    Dernier message: 21/06/2004, 15h55
  5. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo