Ich habe einige Variablen in einer Vorlage und ich weiß nicht, wo ich sie zugewiesen habe. Ich muss wissen, was sich in einer bestimmten Variablen befindet. Angenommen, ich habe in smarty eine Variable namens member
. Ich habe es mit {debug}
versucht, aber es funktionierte nicht und es wurde kein Popup angezeigt.
Wie kann ich Smarty-Variablen mit etwas wie var_dump()
in den Vorlagen ausgeben/debuggen?
Sie können {php} -Tags verwenden
Methode 1 (funktioniert in Smarty 3.1 oder höher nicht):
{php}
$var =
$this->get_template_vars('var');
var_dump($var);
{/php}
Methode 2:
{$var|@print_r}
Methode 3:
{$var|@var_dump}
Lassen Sie mich wissen, ob das hilft.
Das sollte funktionieren:
{$var|@print_r}
oder
{$var|@var_dump}
Das @ ist für Arrays erforderlich, damit smarty den Modifikator gegen das Ganze ausführt, andernfalls für jedes Element.
Für das, was es wert ist, können Sie {$varname|@debug_print_var}
verwenden, um eine var_dump()
-esque-Ausgabe für Ihre Variable zu erhalten.
verwenden Sie einfach {debug} in Ihrem .tpl und sehen Sie sich Ihren Quellcode an
Im neuen Smarty heißt es:
<pre>
{var_dump($variable)}
</pre>
Probieren Sie es mit der Smarty Session aus:
{$smarty.session|@debug_print_var}
oder
{$smarty.session|@print_r}
Um Ihre Ausgabe zu verschönern, verwenden Sie sie zwischen <pre> </pre>
-Tags
Wenn Sie etwas Schöneres wollen, würde ich Ihnen raten
{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}
ersetzen Sie einfach yourvariable durch Ihre Variable
versuchen Sie Folgendes: Setzen Sie $debugging
in Smarty auf TRUE.
In smarty gibt es einen eingebauten Modifikator, den Sie mit |
(Single Pipeline Operator) verwenden können. Auf diese Weise {$varname|@print_r}
wird der Wert als print_r($php_variable)
ausgegeben.
in Smarty V3 können Sie dies verwenden
{var_dump($variable)}
So debuggen Sie in smarty in prestashop 1.6.x:
{ddd($variable)} -> debug and die
{ppp($variable)} -> debug only
Und andere nützliche Debug-Tags:
{debug}