0

我试图将多个数组传递给 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();两次时,父模板显示两次...

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

4

1 回答 1

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),你可以在你的树枝文件中使用{{ 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。

于 2013-04-28T17:20:38.320 回答