2013-04-28 35 views
0

我試圖將多個數組傳遞給Twig display()方法。 我的代碼包含幾個返回數組的函數。 我確實有一個父模板(parent.phtml)和幾個擴展父模板的子模板(child_n.phtml)。如何在多個陣列上使用display()

這是index.php文件的相關部分:

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

樹枝環境等,其中包括另一個文件正在發生的宣言。

隨着代碼上面的一切工作正常。 但我想要做的是顯示多個數組。所以我試過

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

這是行不通的。當使用$template->display();兩次時,父模板將顯示兩次...

那麼可能是什麼解決方案?

回答

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。

+0

我現在正在使用array_merge。謝謝! – Nico 2013-04-29 15:52:51