Smarty - 如何输出变量“{$myvar@display}”


smarty - how to output the variable "{$myvar@display}"

我似乎找不到在智能变量输出块中转义"@"符号的方法。

这是我的设置:

$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}}