我想在 twig 命令中发送一个数组作为参数,例如:
{{ render(controller("AppBundle:Default:Test"), { 'myarray': array }) }}
但是我找不到好的方法。让我们用基本的 AppBundle 来解释以下简单示例。在我的项目中,渲染将要求来自另一个 bundle 的渲染。我确信无论 bundle 是否相同,过程都是相同的。
在默认 Controller 中,我放置了以下内容:
/**
* @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
));
}
我添加了一个 var_dump 来跟踪数组,但它没有转发到 test2Action 函数。
在 Test.html.twig 中,我有以下代码:
{{ render(controller("AppBundle:Default:Test2"), { 'tests': tests }) }}
在 Test2.html.twig 中,我有以下代码:
{% for test in tests %}
{{ test }}</br>
{% endfor %}
最后,我在导航器中看到了这个:
array(0) { }
没有关于我通过 twig 中的渲染/ Controller 函数发送到 test2Action 函数的数组。
我使用的是 Symphony 3.0.3,但即使在 Symphony 2.8 中,我也找不到任何相关信息。
也许我没有使用最好的方法来做到这一点。
请你帮帮我。我确实需要将一个数组从一个包发送到另一个包,以便使两个包彼此独立。
非常感谢, 斯蒂芬。
最佳答案
似乎是括号错误。在 Test.html.twig 中,尝试以下操作:
{{ render(controller("AppBundle:Default:Test2", { 'tests': tests }) ) }}
而不是:
{{ render(controller("AppBundle:Default:Test2"), { 'tests': tests }) }}
希望这有帮助
关于arrays - symfony twig渲染 Controller 参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36048191/