MVC et traitement des requêtes · Question 10 sur 12
Un formulaire envoie le champ startDate sous la forme "2026-10-15" à createAction(Conference $conference) ; la propriété est un \DateTime. Comment la valeur est-elle mappée correctement ?
1 réponse est correcte. Moyen
Afficher la solution
Solution
- C Définir le format de date dans initializeCreateAction() via la configuration du property mapping de l'argument (DateTimeConverter::CONFIGURATION_DATE_FORMAT = 'Y-m-d')
Explication
Sans configuration supplémentaire, le DateTimeConverter attend le format W3C avec l'heure (p. ex. 2026-10-15T00:00:00+02:00) ; "2026-10-15" ne correspond pas et le mapping échoue. $this->arguments->getArgument('conference')->getPropertyMappingConfiguration()->forProperty('startDate')->setTypeConverterOption(DateTimeConverter::class, DateTimeConverter::CONFIGURATION_DATE_FORMAT, 'Y-m-d') définit le format. Le TCA n'agit que sur le backend, et un validateur ne convertit rien.