templates - smarty 中新变量赋值时连接字符串和变量

标签 templates smarty concatenation

我想连接一个已经分配的变量并将其保存到一个新变量,如下所示:

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

因此,生成的 $editPerm 应该是:de.admin.canEditMyClass

我该怎么做?目前,它抛出一个错误:Cannot use string as array offset...

最佳答案

您所描述的错误不是由给定的代码引起的。我假设您正在尝试构建一个字符串“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}

如果您使用的是 Smarty3:

{$de.admin.{"canEdit"|cat:{"myClass"|ucfirst}}.foo}

关于templates - smarty 中新变量赋值时连接字符串和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351211/

相关文章:

c++ - 为什么不考虑特定值的模板?

r - 如何为数据框中的每个元素附加一个序号?

php - 此代码中使用哪种语言

javascript - jQuery 在 smarty 代码上抛出 Uncaught Error

mysql - 将重复 ID 的不同值连接成一行

java - 如何连接两个 ArrayList?

c++ - GCC 4.2 模板奇怪的错误

c++ - 使用 Curiously Recurring Template Pattern 时如何实例化基类?

c++ - 编译时检查函数是否被使用/未使用 c++

php - 如何将 smarty 变量传递给 php 函数?