template asset arrays symfony controller twig render

arrays - asset - symfony twig render controller argumento array



symfony twig block (1)

Me gustaría enviar una matriz como argumento en un comando twig como:

{{ render(controller("AppBundle:Default:Test"), { ''myarray'': array }) }}

Pero no soy capaz de descubrir el buen camino. Vamos a explicar el siguiente ejemplo simple con el AppBundle básico. En mi proyecto, el render solicitará un render de otro Bundle. Estoy seguro de que el proceso es el mismo, siempre que sea el mismo paquete o no.

En el controlador predeterminado, puse esto:

/** * @Route("/test", name="test") */ public function testAction() { return $this->render(''AppBundle:Default:Test.html.twig'', array ( ''tests'' => array("Test 1", "Test 2", "Test 3", "Test 4") )); } /** * @Route("/test2", name="test2") */ public function test2Action($tests = array()) { var_dump($tests); return $this->render(''AppBundle:Default:Test2.html.twig'', array( ''tests'' => $tests )); }

Agregué un var_dump para seguir la matriz, y no se reenvía a la función test2Action.

En Test.html.twig, tengo este código:

{{ render(controller("AppBundle:Default:Test2"), { ''tests'': tests }) }}

En Test2.html.twig, tengo este código:

{% for test in tests %} {{ test }}</br> {% endfor %}

Finalmente, tengo esto en el navegador:

array(0) { }

Nada sobre la matriz que envié a la función test2Action a través de la función render / controller en twig.

Estoy usando Symphony 3.0.3, pero incluso en Symphony 2.8, no puedo encontrar ninguna información relevante.

Tal vez no estoy usando la mejor manera de hacer esto.

Podrías ayudarme, por favor. Realmente necesito enviar una matriz de un paquete a otro, para tener ambos independientes del otro.

Muchas gracias, Stef.


Parece un error de corchete. En Test.html.twig, prueba esto:

{{ render(controller("AppBundle:Default:Test2", { ''tests'': tests }) ) }}

en lugar de:

{{ render(controller("AppBundle:Default:Test2"), { ''tests'': tests }) }}

Espero que esto ayude