如何在多个数组上使用display()

时间:2013-04-28 15:08:49

标签: php twig

我试图将多个数组传递给Twig display()方法。 我的代码包含几个返回数组的函数。 我有一个父模板(parent.phtml)和几个子模板(child_n.phtml),它们正在扩展父模板。

这是index.php的相关部分:

$template = $twig->loadTemplate('child_1.phtml');
$template->display(function_1());

Twig环境等的声明发生在另一个包含的文件中。

使用上面的代码一切正常。 但我想做的是显示多个阵列。所以我试过了

$template->display(function_1(), function_2());

这不起作用。使用$template->display();两次时,父模板将显示两次......

那么什么可能是解决方案?

1 个答案:

答案 0 :(得分:0)

您有几种方法可以解决您的问题:

1)如果您的function_1()function_2()确实返回具有不同键的数组,则可以使用array_merge合并所有数组。

$template->display(array_merge(function_1(), function_2()));

因此,如果function_1()返回array("a" => 42)function_2()返回array("b" => 84),您可以在twig文件中使用{{ a }}{{ b }}来访问值。

2)如果你的function_1()function_2()确实返回带有类似键的数组,则需要为它们命名:

$twigVars = array();
$twigVars['array1'] = function_1();
$twigVars['array2'] = function_2();
$template->display($twigVars);

因此,如果function_1()返回array("a" => 42)function_2()返回array("a" => 84),则可以使用{{ array1.a }}访问42,{{ array2.a }}访问84 {你的枝条文件。