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.