0

Twig display() メソッドに複数の配列を渡そうとしています。私のコードには、配列を返す関数がいくつか含まれています。1 つの親テンプレート (parent.phtml) と、親テンプレートを拡張するいくつかの子テンプレート (child_n.phtml) があります。

これは、index.php の関連部分です。

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

Twig環境の宣言などは同梱されている別ファイルで行っています。

上記のコードでは、すべて正常に動作します。しかし、私がやりたいことは、複数の配列を表示することです。だから私は試しました

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

これは動作しません。2回使用する$template->display();と、親テンプレートが2回表示されています...

では、解決策は何でしょうか?

4

1 に答える 1

0

問題を解決するにはいくつかの方法があります。

1) と が異なるキーを持つ配列を返す場合、function_1()array_mergefunction_2()を使用てすべての配列をマージできます。

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

したがって、returnおよびfunction_1()returnsの場合、小枝ファイルでandを使用して値にアクセスできます。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);

したがって、 return および return の場合、を使用して twig ファイルの42にアクセスし、84 にアクセスできfunction_1()ます。array("a" => 42)function_2()array("a" => 84){{ array1.a }}{{ array2.a }}

于 2013-04-28T17:20:38.320 に答える