symfony twig渲染控制器参数数组

时间:2016-03-16 22:29:29

标签: arrays symfony controller twig render

我想在一个twig命令中发送一个数组作为参数:

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

但我无法找到好方法。让我们用基本的AppBundle解释以下简单示例。在我的项目中,渲染将要求另一个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中的渲染/控制器函数发送到test2Action函数的数组没什么。

我正在使用Symphony 3.0.3,但即使在Symphony 2.8中,我找不到任何相关信息。

也许我没有用最好的方法来做到这一点。

拜托,能帮助我吗?我真的需要将一个数组从一个数据包发送到另一个数据库,以使两者都独立于另一个。

非常感谢, 燕姿。

1 个答案:

答案 0 :(得分:2)

似乎是一个支架错误。在Test.html.twig中,试试这个:

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

而不是:

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

希望这个帮助