所以我有一个关联数组{$ join_options},其中已有五个条目。
如果我转储$ join选项,它将显示:
19 => Some text for 19
20 => Some text for 20
22 => Some text for 22
24 => Some text for 24
26 => Some text for 26
到目前为止很好。
如果我只使用{$join_options.20}
,则会打印
20的一些文字
然后我尝试这个小曲子:
{assign var=modified_join_options values=[
20 => '$join_options.20',
24 => '$join_options.24',
26 => '$join_options.26',
]}
我收到此错误:
syntax error: invalid attribute name: ''$join_options.20',' (Smarty_Compiler.class.php, line 1550)
我尝试了多种不同的方法来输入$ join_options.20我试过''没有{}而没有Wat?
编辑:我尝试使用值而不是值添加反引号,删除最后一个逗号。现在我明白了:
Smarty错误:[在网站:加入第116行]:语法错误:无效的属性名称:'='(Smarty_Compiler.class.php,第1550行)
答案 0 :(得分:0)
这是因为它里面有.
。您必须使用backticks
包围变量。试试这个。
{assign var=modified_join_options values=[
20 => '`$join_options.20`',
24 => '`$join_options.24`',
26 => '`$join_options.26`',
]}
答案 1 :(得分:0)
使用值,删除引号和最后一个逗号,它将起作用:
{assign var=modified_join_options value=[
20 => $join_options.20,
24 => $join_options.24,
26 => $join_options.26
]}
答案 2 :(得分:0)
所以,我最后创建了一个smarty函数,我将智能对象和数组作为params传递给了我。在插件的功能内部,我进行操作,然后使用smarty对象使用foreach键值循环,if语句,strpos()和strtolower()函数将我想要的选项分配给新数组。相当标准的PHP东西。我不知道这是否是smarty的标准程序,但我发现了一些有用的文档,我正在使用的软件,并告知这是一个选项。