symfony twig render controlador argumento matriz
Gostaria de enviar uma matriz como argumento em um comando galho como:
{{ render(controller("AppBundle:Default:Test"), { 'myarray': array }) }}
Mas não sou capaz de descobrir o bom caminho. Vamos explicar o seguinte exemplo simples com o AppBundle básico. No meu projeto, a renderização solicitará uma renderização de outro pacote. Tenho certeza de que o processo é o mesmo, sempre que é o mesmo pacote ou não.
No controlador padrão, eu coloquei isto:
/**
* @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
));
}
Eu adicionei um var_dump para rastrear a matriz e ela não é encaminhada para a função test2Action.
No Test.html.twig, tenho este código:
{{ render(controller("AppBundle:Default:Test2"), { 'tests': tests }) }}
No Test2.html.twig, tenho este código:
{% for test in tests %}
{{ test }}</br>
{% endfor %}
Finalmente, eu tenho isso no navegador:
array(0) { }
Nada sobre a matriz que enviei para a função test2Action através da função render / controller em twig.
Estou usando o Symphony 3.0.3, mas mesmo no Symphony 2.8, não consigo encontrar nenhuma informação relevante.
Talvez eu não esteja usando a melhor maneira de fazer isso.
Por favor, você poderia me ajudar. Eu realmente preciso enviar uma matriz de um pacote para outro, a fim de ter os dois independentes do outro.
Muito obrigado, Stef.