我在模板中有一些变量,我不知道我在哪里分配它们。我需要知道特定变量中的内容;例如,假设我在smarty中有一个名为member
的变量。我尝试使用{debug}
,但它不起作用,并且没有显示弹出窗口。
如何使用模板中的var_dump()
输出/调试智能变量?
答案 0 :(得分:299)
您可以使用{php}标记
方法1(在Smarty 3.1或更高版本中不起作用):
{php}
$var =
$this->get_template_vars('var');
var_dump($var);
{/php}
方法2:
{$var|@print_r}
方法3:
{$var|@var_dump}
如果有帮助,请告诉我。
答案 1 :(得分:114)
这应该有效:
{$var|@print_r}
或
{$var|@var_dump}
数组需要@才能使mody对整个事物运行修饰符,否则它会为每个元素执行。
答案 2 :(得分:23)
对于它的价值,您可以{$varname|@debug_print_var}
为变量获得var_dump()
- esque输出。
答案 3 :(得分:9)
只需在.tpl中使用{debug}并查看源代码
即可答案 4 :(得分:6)
在新的Smarty中,它是:
<pre>
{var_dump($variable)}
</pre>
答案 5 :(得分:4)
尝试使用Smarty会话:
{$smarty.session|@debug_print_var}
或
{$smarty.session|@print_r}
要美化您的输出,请在<pre> </pre>
标记
答案 6 :(得分:2)
如果你想要更漂亮的东西我会建议
{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}
只需用变量替换你的变量
答案 7 :(得分:1)
试试这个......在Smarty中将$debugging
设为TRUE。
答案 8 :(得分:1)
在prestashop 1.6.x中使用smarty进行调试:
{debug}
另一个有用的调试标记:
<p:commandButton id="btnAlterar" value="Alterar" action="#{impressoraMB.alterar}" update=":form:tab" onclick="PF('alterarImpre').hide()"
oncomplete="PF('form').hide(); #{impressoraMB.impressora}" ajax="true" process="@form" title="Alterar">
答案 9 :(得分:0)
在smarty中,内置修饰符可以通过使用|
(单个管道运算符)来使用它。像这样{$varname|@print_r}
会将值打印为print_r($php_variable)
答案 10 :(得分:0)
在smarty V3中你可以使用这个
{var_dump($variable)}
答案 11 :(得分:0)
我更喜欢使用<script>console.log({$varname|@json_encode})</script>
登录到控制台。
答案 12 :(得分:0)
{$variable|@debug_print_var nofilter}
,您无需添加“ <pre>
”标签
{$variable|var_dump}
向您展示了更多(但格式较差),因为debug_print_var
没有在对象中显示私有变量!