Bonjour,
je souhaite qu'un formulaire puisse afficher les erreurs liées à chaque champ avant que la soumission du formulaire ait eu lieu.
De coutume, l'utilisateur clique sur le lien amenant sur la page d'édition, modifie ou pas les données, valide le formulaire et si des erreurs ont lieu (des contraintes appliquées aux champs de l'entité n'ont pas été respectées), l'utilisateur se retrouve à nouveau sur le formulaire d'édition et les erreurs sont affichées à côté des champs à l'aide de Twig :
{{ form_errors(form.fieldName) }}
Je souhaite que la validation des champs ait lieu au chargement de la page (et pas seulement après soumission du formulaireà, et que les erreurs puissent être affichées à côté de leur champ respectif, avant même que le formulaire soit validé. Je souhaite gérer ceci en PHP, à l'aide du form et de l'entity.
J'ai tenté de m'inspirer de cette entrée du cookbook, en écrivant ceci dans le controller :
1 2 3 4 5
| $form = $this->container->get('form.factory')->create(new MyEntityType, $myEntity);
$form->submit($request->request->get($form->getName()));
if ($form->isValid()) {
...
} |
Mais les champs du formulaire ne sont pas remplis avec les données de l'entité : tous les champs sont vides.
J'ai essayé de remplacer
$request->request->get($form->getName())
par , mais cela déclenche une exception,
$myEntity cannot be used as an array in Symfony/Component/Form/Extension/Csrf/EventListener/CsrfValidationListener.php
Quelqu'un sait-il comment nourrir le formulaire avec les données d'une entité et déclencher la validation, sans que la soumission du formulaire soit nécessaire ?
Merci par avance pour vos réponses.
Partager