【发布时间】:2012-06-24 01:21:18
【问题描述】:
如何为本地模板变量分配一个串联的字符串,如下所示:
{$yes_src=const1.'yes'.const2}
以{$yes_src}的方式在下面的代码中使用。
【问题讨论】:
-
Concatenation in smarty 的可能重复项。不过我更喜欢这个答案。
如何为本地模板变量分配一个串联的字符串,如下所示:
{$yes_src=const1.'yes'.const2}
以{$yes_src}的方式在下面的代码中使用。
【问题讨论】:
你这样做的方式是调用assign的“短格式”,你只需要使用correct quoting mechanism:
{$yes_src="`$const1`yes`$const2`"}
使用assign:
{assign var="yes_src" val="`$const1`yes`$const2`"}
使用cat:
{$const1|cat:"yes"}{$const2}
您也可以简单地将变量并排放置而不将其分配给变量:
{$const1}yes{$const2}
...不需要变量。
备注如果您发现自己使用assign 的次数超过很少,您可能会对将逻辑与表示分离的想法产生误解。通常,连接和其他变量工作将在涉及模板之前在 PHP 中完成。模板的作用是只是显示数据,你应该避免在模板中创建或更改数据。
文档
assign - http://www.smarty.net/docs/en/language.function.assign.tpl
cat - http://www.smarty.net/docsv2/en/language.modifier.cat
【讨论】:
{ $yes_src = $variable|cat:"some string"|cat:$variable }
【讨论】:
试试这个:
{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}
然后使用新的变量:
{$yes_src}
【讨论】: