Si vous manipulez les formulaires avec symfony2 vous avez sans doute testé les validations et les messages d’erreurs.
Cela fonctionne très bien et je vous conseille la lecture de la doc officielle à ce sujet.
Pour afficher les erreurs la doc vous dit d’utiliser le code suivant:
{{ form_errors(form.age) }}
Le problème c’est que lorsqu’on affiche notre template on se retrouve avec ce code HTML:
<ul>
<li>
Texte de l'erreur
</li>
</ul>
Ca fonctionne mais ce n’est pas évident à manipuler vu qu’il n’y a pas de classe CSS appliquée ni au LI ni au UL
Voici donc comment faire pour ajouter une classe (et même plus) à vos messages d’erreurs.
Tout d’abord créez le fichier « src/Acme/DemoBundle/Resources/views/Form/error.html.twig » et ajoutez-y le code suivant:
{% block field_errors %}
{% spaceless %}
{% if errors|length > 0 %}
<ul class="error_list">
{% for error in errors %}
<li>{{ error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
{% endfor %}
</ul>
{% endif %}
{% endspaceless %}
{% endblock field_errors %}
Puis dans le template qui affiche votre formulaire ajoutez ceci:
{% form_theme form 'AcmeDemoBundle:Form:error.html.twig' %}
Voila désormais lorsque vous appellerez {{ form_errors(form.age) }} c’est ce template qui sera utilisé.
Vous avez désormais accès aux erreurs via la classe « error_list ». Mais si vous le désirez vous pouvez modifier complètement ce template pour afficher vos erreurs dans des « span » par exemple.
Tags : formulaire, Symfony2, twig
Il est souvent utile dans un template de faire un print_r ou un dump sur nos variables. Malheureusement avec twig ça semble impossible. En réalité c’est tout à fait possible il suffit d’activer l’extension et d’utiliser la syntaxe prévue à cet effet.
Dans votre fichier app/config/config.yml copiez le code suivant:
services:
twig.extension.debug:
class: Twig_Extensions_Extension_Debug
tags:
- { name: 'twig.extension' }
Puis dans votre template vous pouvez désormais utiliser la syntaxe suivante:
{% debug maVariable %}
Attention tout de même selon la quantité d’infos contenues dans votre variable vous pouvez avoir des problèmes de timeOut.
Tags : Symfony2, twig
Voici quelques feuilles de références pour symfony2 à conserver à porté de main si vous développez sous Symfony2:
Doctrine 2
Les formulaires
La console
Tags : cheat sheet, Symfony2
Avec Symfony lorsqu’on manipule les formulaires, il arrive souvent qu’on ait besoin de récupérer des informations de l’utilisateur courant. Voici comment récupérer ces informations proprement.
Lire la suite »
Tags : form, sf_user
Bon, je viens de perdre 2 heures à cause d’un problème de traduction du plugin sfGuard alors je partage ici la soluce, ça permettra peut-être à certains de ne pas perdre leur temps comme moi.
Lire la suite »
Voici un petit tutoriel pour vous expliquer comment installer CKEditor dans symfony.
Lire la suite »
Tags : ckeditor
Lorsque vous utilisez la commande plugin:install de symfony pour installer un plugin, par défaut c’est la dernière version stable de ce plugin qui sera recherchée. Mais, certains plugins n’existent pas encore en version stable (c’est le cas par exemple de sfCKEditorPlugin au moment où j’écris cet article).
Pour installer un plugin n’ayant pas encore de version stable il faut préciser dans votre commande la version (release) de ce plugin, pour l’exemple de sfCKEditorPlugin ça donnerait:
plugin:install -r 0.1.2 sfCKEditorPlugin
Il suffit donc d’ajouter -r (pour release) puis le numéro de version et enfin le nom du plugin.
Parce que j’aime bien garder sous le coude ce genre de documents bien pratiques, je vous mets ici les différents cheat sheet (mémento) sur symfony.
Lire la suite »
Tags : cheat sheet