我有这样的事情:
<select class="form-control" name="activ">
{if {$smarty.session.admin['access']['pages:list:activ']} == '1'}
<option value="1">{#L_YES#}</option>
<option value="0">{#L_NO#}</option>
{else}
<option value="0">{#L_NO#}</option>
{/if}
</select>
我需要将['pages:list:activ']
更改为['{$smarty.get.module}:list:activ']
我该怎么做?
答案 0 :(得分:0)
这里有多个选项..
首先,当您使用单引号时,PHP不会解析变量。
所以
$a = 'string';
echo '$test with something';
将输出:
$test with something
但是如果你使用:
$a = 'string';
echo "$test with something";
或
echo "{$test} with something";
将输出:
string with something
但是对于Smarty,如果你在名称中使用.
或->
,这将不起作用,因为你必须在变量周围使用反引号,如下所示(注意它周围的双引号):
{if {$smarty.session.admin['access']["`$smarty.get.module`:list:activ"]} == '1'}
有关详细信息,请参阅:Smarty Embedding Vars in Double Quotes
您还可以使用cat修饰符并将连接值分配给var:
{assign var = "moduleList" value = $smarty.get.module|cat:":list:activ"}
{if {$smarty.session.admin['access'][$moduleList]} == '1'}