如何debuggingSmarty中的variables像在PHP中var_dump()

我有一些模板内的variables,我不知道我在哪里分配他们。 我需要知道什么是在一个特定的variables, 比如说,我在smarty被调用的member有一个variables。 我尝试{debug}但它没有工作,并没有popup显示。

我怎样才能输出/debugging使用类似var_dump()模板内的smartyvariables?

你可以使用{php}标签

方法1(不会在Smarty 3.1或更高版本中工作):

 {php} $var = $this->get_template_vars('var'); var_dump($var); {/php} 

方法2:

 {$var|@print_r} 

方法3:

 {$var|@var_dump} 

让我知道这是否有帮助。

这应该工作:

 {$var|@print_r} 

要么

 {$var|@var_dump} 

数组需要@来使smarty对整个事物运行修饰符,否则它会为每个元素执行修饰符。

对于什么是值得的,你可以使用{$varname|@debug_print_var}来为你的variables获取一个var_dump()转换的输出。

只需在您的.tpl中使用{debug}并查看您的源代码

在新的Smarty中,它是:

 <pre> {var_dump($variable)} </pre> 

尝试与Smarty会议:

 {$smarty.session|@debug_print_var} 

要么

 {$smarty.session|@print_r} 

为了美化您的输出,请在<pre> </pre>标记之间使用它

试试这个….在Smarty中设置$debugging为TRUE。

如果你想要更漂亮一些,我会build议

 {"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string} 

只是用你的variablesreplace你的variables

在smarty里面有修改器,你可以用|来使用它 (单一pipe道运营商)。 像这样{$varname|@print_r}将打印值为print_r($php_variable)

在prestashop 1.6.x中使用smarty进行debugging:

 {ddd($variable)} -> debug and die {ppp($variable)} -> debug only 

一个有用的debugging标签:

 {debug}