Wie man alle zugewiesenen Smarty-Variablen während der Ausführung der Vorlage?
Ich würde gerne alle zugeordneten Variablen Smarty in der Vorlage. Zum Beispiel, wenn ich in diesem code
$smarty->assign('name', 'Fulano');
$smarty->assign('age', '22');
$result = $this->smarty->fetch("file:my.tpl");
Ich würde gerne eine my.tpl
wie folgt:
{foreach from=$magic_array_of_variables key=varname item=varvalue}
{$varname} is {$varvalue}
{/foreach}
wie der Inhalt Ergebnis wäre
name is Fulano
age is 22
So ist, gibt es einen Weg, um diese $magic_array_of_variables
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
alle code unten ist smarty2
Alle smarty-Variablen, die statt in das $smarty->_tpl_vars Objekt, so, bevor Sie abholen() Ihre Vorlage, die Sie tun könnten:
Da dies kann unpraktisch sein, Sie könnte auch schreiben, ein kleines smarty-plugin-Funktion, die macht etwas ähnliches:
und von Ihrem tpl rufen Sie es mit:
Alternativ in dieser Funktion können Sie tun:
und in Ihre Vorlage ein:
Können Sie nur zuweisen, array smarty-variable. So etwas wie dieses:
beim ordnen Sie diese zu Ihrem template mit dem Namen
magic_array_of_variables
die genaue smarty-template zur Verfügung gestellt geben sollte, die Ausgabe, die Sie wollenGibt es keine native Möglichkeit zum Durchlaufen der zugeordneten Variablen. Das heißt, getTemplateVars() gibt ein assoziatives array aller Werte zugewiesen.
Wie @perikilis beschrieben, können Sie einfach registrieren, eine plugin-Funktion für push-das Ergebnis getTemplateVars() zurück, um die zugeordneten Variablen Liste. Wenn Sie wollten, um zu verhindern, dass einige Daten, Vervielfältigung und andere Seltsamkeit, möchten Sie vielleicht nur die Zuordnung der array_keys() und Zugriff auf die eigentlichen Variablen wie
{${$varname}}
(Smarty3).