F.P*_*F.P 5 templates concatenation smarty
我想连接一个已经分配的变量并将其保存到一个新变量,如下所示:
{assign var=permCat value="de.admin"}
{assign var=objectName value="myClass"}
{assign var=objectNameUpper value=$objectName|ucfirst}
{assign var=editPerm value=$permCat|cat:"canEdit"|cat:$objectNameUpper}
Run Code Online (Sandbox Code Playgroud)
所以,结果$editPerm应该是:de.admin.canEditMyClass
我怎样才能做到这一点?目前,它会抛出一个错误:Cannot use string as array offset...
rod*_*ehm 12
您描述的错误不能由给定的代码引起.我假设您正在尝试构建一个字符串"de.admin.canEditMyClass"以用作变量{$builtString.foo}.这就是错误发生的地方,因为smarty并没有将你的字符串神奇地转换为变量引用.
如果你正在使用Smarty2:
{assign var=objectName value="myClass"}
{assign var=objectNameUpper value=$objectName|ucfirst}
{assign var=editPerm value="canEdit"|cat:$objectNameUpper}
{$de.admin.$editPerm.foo}
Run Code Online (Sandbox Code Playgroud)
如果你正在使用Smarty3:
{$de.admin.{"canEdit"|cat:{"myClass"|ucfirst}}.foo}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13059 次 |
| 最近记录: |