我似乎找不到在智能变量输出块中转义"@"符号的方法。
这是我的设置:
$data = array("myvar@display"=>4534534);
$smarty->assign($data);
在此处分配文档
在我的模板文件中:
<body>
{$myvar@display}
</body>
输出:
Message: Undefined property: Smarty_Variable::$display
任何想法如何在不更改"@"符号的情况下显示它(我无法修改它,因为它是整个应用程序中使用的约定,我无法控制这一点)
跑步灯 5.2.17, 聪明 3
PS我已经尝试过这个但没有成功...
{assign var=jason value="$myvar@display"}{eval var=$jason}
输出
4534534@display
我在 smarty 3(禁用标签 {php})中看到的唯一方法是分配一个新变量。
如果您在 php 代码中的某个位置可以访问,您可以输入:
$smarty->assign('at','@');
并在 TPL 中获取 var 名称:
{$myvar{$at}display}
我认为这比重新制作复杂变量名称背后的逻辑更简单。
或者,您可以尝试是否启用了标签{php}并获取私有智能数组的索引。
编辑
这对我有用
{assign var=foo value='myvar@display'}
{${$foo}}