Symfony2 form_errors
Je pense que c'est une question simple. De son sur la sortie d'erreurs.
C'est mon twig fichier:
<table>
<tr>
<td>{{ form_label(form.dueDate) }}</td>
<td>{{ form_widget(form.dueDate) }}</td>
<td>{{ form_errors(form.dueDate) }}</td>
</tr>
<tr>
<td>{{ form_label(form.task) }}</td>
<td>{{ form_widget(form.task) }}</td>
<td>{{ form_errors(form.task) }}</td>
</tr>
</table>
Maintenant chaque erreur s'affiche (td avec form_errors()) comme:
< ul>< li>Cette valeur ne doit pas être vide< /li>< /ul>
Ma question est: je veux sortie d'erreur sous forme de texte brut (sans ul et li).
Je sais qu'il y en est un exemple comme ceci:
{% for error in errors %}
{{ error.message }}
{% endfor %}
Mais cela permettra d'erreurs en sortie un après l'autre. Je veux les afficher où la contribution spécifique est:
< td>{{ myErrorFor forme.dueDate }}< /td>
Grand merci pour toute aide
- Je ne suis pas sûr qu'il y est une façon de le faire. Il peut être nécessaire d'écrire une nouvelle extension Twig (pas difficile, IIRC). La façon rapide et facile, bien sûr, serait de supprimer le style de la
ul
etli
... - J'aime bien ton idée, mais je suis sûr qu'il ya un moyen plus facile...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez personnaliser la façon dont les erreurs de forme de rendu en fournissant votre propre thème de formulaire avec un
field_errors
bloc.Vous pouvez le faire sur juste le modèle en cours:
Ou par la définition d'une forme globale thème dans
config.yml
:Dans ce cas, vous souhaitez déplacer le
field_errors
bloc ci-dessus pourapp/Resources/views/form_theme.html.twig
et laform_theme
balise n'est plus nécessaire.form_theme.html.twig
mais mon formulaire lui-même) pour qu'il fonctionne?Voici ma solution. J'ai décidé de créer un tableau avec des erreurs et la passer dans la vue (rameau). Il m'a fallu un certain temps à travailler sur la façon d'obtenir des messages d'erreur... mais ici, nous allons:
L'important, c'est la méthode _getErrors($form) qu'elle retourne un tableau comme ceci (si il y a des erreurs)
Et voici twig partie:
J'espère que son assez clair. Laissez-moi savoir si vous avez besoin d'aide.
Merci de poster une réponse si il y a un moyen plus facile de le faire.
Ne pouvez pas ajouter de commentaires pour l'instant, mais je voudrais mettre à jour Kris Wallsmith de réponse. Aujourd'hui, ce bloc est appelé
form_errors
, donc en 3e ligne, il devrait être{% block field_errors %}
. Il m'a fallu un certain temps pour étudier, j'espère que quelqu'un en profite.Une solution simple (testé avec symfony 3):
Remplacer "nom d'utilisateur" par votre champ de formulaire.