79781470

Date: 2025-10-03 06:01:30
Score: 0.5
Natty:
Report link

Le problème : new Link() avec toProperty est conçu pour les opérations de lecture (GET/GetCollection).

Quand tu l'utilises sur un POST, API Platform essaie de récupérer une ressource existante. Dès que tu as plus de 2 adresses pour le même worker, il trouve plusieurs résultats au lieu d'un seul d'où l'erreur.

La solution : Pour les opérations POST, simplifie ta configuration :

#[Post(
    uriTemplate: '/workers/{workerId}/addresses',
    input: AddressInputDto::class,
    processor: AddressStateProcessor::class
)]

Puis dans ton AddressStateProcessor, récupère l'ID du worker depuis le contexte :

$workerId = $context['uri_variables']['workerId'];

Récupère l'entité Worker et associe-la à la nouvelle Address

Pourquoi ? new Link() est prévu pour la récupération de sous-ressources, pas pour leur création. Pour les POST, gère la relation parent-enfant dans ton state processor.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: Jimmy Morizot