私は完全なZF2スタックを持っていませんが、私は$this->partial()
とViewModel()
の方法を受け入れるために私のほとんど非ZF2コードを組み立てました。パススルーコードを使用せずに、ZF2の遠隔ビューの子にビューヘルパー変数を伝播するにはどうすればよいですか?
私は、View Helper Partialsのツリーを持っていて、何人かの遠く離れた子が変数someVar
を必要とする状況がよくあります。
私はその変数を管理して、ルート内の部分的な部分には必要ない場合でも、partial
をルートから子にそれぞれ渡します。
varを管理する必要はありませんか?
例
//controller.php
echo $this->partial('root.phtml', array('someVar' => $someVar));
//root.phtml
<?
//this variable-pass-through-only step is one I would like to eliminate.
//aka. here someVar is not itself used in root.phtml
//it is only passed onto the child view partial
//I want to eliminate this pass-through-only code.
echo $this->partial('child.phtml', array('someVar' => $this->someVar)):
?>
//child.phtml - leaf child
<?
//variable is actually used for display purpose
echo $this->someVar;
?>
私はなど、すなわちViewModel
非partial
構文を使用して答えを開いています
注:私はパススルーを削除コードでは、変数のグローバルスコープがあることを期待していますが、そうではありません。変数は子リーフビューpに渡されません芸術的。 ZF2には、私がしたいことのためのより良いアプローチがあることが期待されています。質問の
ゴール/スピリット
は、私はいくつかのVARSがパスなしで、葉.phtml
にpartial
/view
のルートから自分自身を拡張し、「グローバル」VARことができるようにする方法を求めている明確にします私はこれを行う必要はありませんが、パススルーvarsでコードを乱雑にしないでください。
ここではどのようなテンプレート/変数について説明していますか?いくつかのネストされたツリーレンダリング?個々のパーシャルはどのくらい複雑ですか?私が求めているのは、ZF2でいつものように、目標を達成するための方法は20種類あります。正しい方法は状況に大きく左右されます。 – Fge
おそらくプレースホルダヘルパーを使用しますか? – Progrock
私の場合、@Fge私の葉の子部分にif-then-else構文で使用される 'isAnOrder'ブール変数があります。しかし、私は時には、渡されたばかりのブール変数など、変数の配列もあります。 – Dennis