我正在处理一项任务,这部分是由别人完成的。因此,我有一些文本在数据库中,需要采取他们,并添加到现有的模板。问题是,文本包含一些变量,我想显示这些变量(它们是提供给模板的)。现在我只能在里面看到花括号和变量的名称,而不是它的值。
PHP:
$var = "{$rest_name} offers good {$cuisine} food.";
$smarty->assign("rest_name", "My Rest");
$smarty->assign("cuisine", "thai");
$smarty->assign("desc", $var);TPL:
{$desc}显示{$rest_name} offers good {$cuisine} food.,但我想在那里看到My Rest offers good thai food.。
当应用程序的不同部分交付数据时,我不能在PHP中这样做,因此,只有知道所有内容的地方都是模板。
如何强制Smarty将PHP变量呈现为模板的一部分?
发布于 2014-09-08 15:36:46
在PHP {$rest_name} offers good {$cuisine} food.中首先需要使用单引号。否则,您将得到未定义变量的警告,因此PHP中的正确代码如下:
$var = '{$rest_name} offers good {$cuisine} food.';
$smarty->assign("rest_name", "My Rest");
$smarty->assign("cuisine", "thai");
$smarty->assign("desc", $var);在Smarty中,您可以使用:
{include file="string:$desc"}它将立即显示已解析的字符串。
可以使用以下方法将其赋值给变量:
{include file="string:$desc" assign="assigned"}
some other stuff here
{$assigned}在这两种情况下,您都将获得所需的输出:
我的休息提供很好的泰国菜。
https://stackoverflow.com/questions/25727568
复制相似问题