我试图将多个数组传递给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();
两次时,父模板将显示两次......
那么什么可能是解决方案?
答案 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 {你的枝条文件。