Bonjour,

J'ai deux for, l'un imbriqué dans l'autre, et dans le deuxième for, je fais un render vers une méthode de mon controller mais Symfony m'indique l'erreur : Unexpected "render" tag (expecting closing tag for the "for" tag defined near line 33).

La ligne 33 étant mon render. Je comprends qu'il faut fermer le for puis faire le render, sauf que j'aimerai faire le render dans le for.

{% for px in range(cx_min, cx_max) %}
    <tr>
        {% for py in range(cy_min, cy_max) %}
            {% render(controller('GameBundle:Index:tdCarteReg', { 'pos_x':'px', 'pos_y':'py' })) %}
        {% endfor %}
    </tr>
{% endfor %}

Je ne sais donc pas si ma façon de faire est correcte, ni si c'est possible.

Merci pour l'aide.

4 réponses


Salut Alix_Speroza,

essaie en plaçant 'render' entre {{ ... }} à la place de {% ... %} .

{{ render(controller('GameBundle:Index:tdCarteReg', { 'pos_x':'px', 'pos_y':'py' })) }}

Pour twig, 'render' n'est pas un tag mais une fonction. Elle doit donc être insérée entre {{ }}

Je te remercie pour ta réponse.

Toutefois, mon erreur a changé, car je dois sûrement mettre dans ma méthode :

$this->render('GameBundle:Index:index.html.twig', '<td>'.$pos_x.' / '.$pos_y.'</td>');

Seulement, ça me fait l'erreur : An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Argument 2 passed to Symfony\Bundle\FrameworkBundle\Controller\Controller::render() must be of the type array, string given.

Je ne sais pas trop comment adapter le $this->render.

salut,
normal c'est un peu n'importe quoi ton render... faut renvoyer ça :

$this->render('GameBundle:Index:index.html.twig', array('pos_x' => $pos_x, 'pos_y' =>$pos_y);

l'erreur parle d'elle même...

la doc sur render controller

Carr oubli pas de faire un fichier twig avec ton template :

<td>{{ pos_x }}/{{ pos_y }}</td>