Ich habe keinen vollen ZF2-Stack, aber ich habe meinen meist nicht-ZF2-Code manipuliert, um die Methoden $this->partial()
und ViewModel()
zu akzeptieren.Wie kann ich eine View Helper-Variable an ein entferntes View-Kind in ZF2 propagieren, ohne Pass-Through-Code zu verwenden?
Ich finde oft eine Situation, in der ich einen Baum von View Helper Partials habe, zu dem ein ferne Wurzel-Kind eine Variable someVar
benötigt.
Ich verwalte diese Variable, die es durch jede partial
von Root zum Kind, auch wenn die In-Route-Partials haben es nicht nötig.
Gibt es eine Möglichkeit, die Var nicht zu verwalten?
Beispiel
//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;
?>
Ich bin zu öffnen, die Antworten nicht verwenden partial
Konstrukt, dh ViewModel
usw.
Hinweis: wenn I entfernen den Pass-through Code, in der Hoffnung, dass es eine Art globalen Spielraum für Vars gibt, ist es nicht der Fall - die Variable geht nicht auf die Kindblattansicht p über künstlich. Ich hoffe, dass es in ZF2 einen besseren Ansatz für das gibt, was ich tun möchte.
Goal/Geist der Frage
Um klar zu sein, ich einen Weg suche einige Vars zu machen ein „global“ var zu sein, die sich von der Wurzel erstreckt partial
/view
auf das Blatt .phtml
ohne Pass - Durch Code, oder vielleicht einen anderen Ansatz insgesamt, wo ich dies nicht tun muss, und dennoch nicht meinen Code mit Pass-Through Vars
Über welche Art von Vorlagen/Variablen sprechen wir hier? Irgendein geschachteltes Baum-Rendering? Wie komplex sind die einzelnen Teiltöne? Der Grund warum ich frage ist, dass es, wie in ZF2 üblich, ungefähr 20 Möglichkeiten gibt, um ein Ziel zu erreichen. Welches der richtige ist oft sehr abhängig von der Situation :) – Fge
Vielleicht den Platzhalter Helfer benutzen? – Progrock
@Fge in meinem Fall Ich habe eine 'isAnOrder' boolesche Variable, die in einem if-then-else Konstrukt in meinem Blatt Kind Teil verwendet wird. Aber manchmal habe ich auch Arrays von Variablen, z. B. mehr boolesche Variablen, die gerade übergeben werden. – Dennis