在Smarty模板中打印所有可用变量

37
您如何在Smarty模板的上下文中打印所有可用变量?类似于列出传递的所有内容的Django调试跟踪。谢谢
4个回答

73

使用 {debug} 来自手册:

{debug} 将调试控制台转储到页面上。这不受 php 脚本中的调试设置影响。由于它在运行时执行,因此只能显示已分配的变量;而不能显示正在使用的模板。但是,您可以看到模板范围内当前可用的所有变量。

要查看窗口,必须在您的设置或类中启用 $debugging = true,并解除站点弹出窗口的阻止。


3
使用 {debug} 时,请记得允许弹出窗口。浏览器默认会阻止调试信息弹出窗口。 - codefreak
1
仍然有用于2014年(可能适用于较旧版本的Smarty) - Ejaz
1
{debug} 在 Smarty 2 和 3 中都可用。 - Machavity
1
为什么没有人提到在您的设置或类中必须启用$debugging = true,并且必须取消阻止站点弹出窗口才能看到窗口。 - vladkras
有时候,由于要显示的数据量太大,{debug}会导致内存限制。是否有从模板文件调用的函数仅显示已定义变量列表的功能? - userlond
{debug}证明是一个令人惊喜的发现! - Jono

13
var_dump($Smarty->_tpl_vars);

来自 Smarty 代码 :)


7

Smarty 3更新的答案:getTemplateVars

// If no parameter is given, an array of all assigned variables are returned. 
$all_tpl_vars = $smarty->getTemplateVars();

0

$all_tpl_vars = $smarty->getTemplateVars(); var_dump($all_tpl_vars);

//在推送到模板之前

exit;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接