2016-12-30 78 views
5

在我的php代码。如何在Smarty中为param分配一个值的数组?

$version_config = array( 
    "list" => array(
     "123" 
    ), 
... other params 
) 
$this->getView()->assign('version_config', $version_config); 
$this->getView()->assign('version_list', $version_config['list']); 

以我TPL代码,

{assign var="version_list2" value="{$version_config.list}"} 

{$version_list2}是一个字符串值 “阵列”,而{$version_list2}是一个数组。我是否需要更多操作将{$version_list2}编码为数组?

+1

相反引号('值= “...”'),尝试'['和']'('值= [...]')。另请参阅[定义数组部分](http://www.smarty.net/docs/en/language.syntax.variables.tpl),您会注意到它们更像是用于定义值的json符号。 –

+0

您的建议有效。谢谢。但通过添加[]使该值成为数组(array()),只需删除{}即可。 – ZeroZerg

回答

4

双引号将$version_config.list数组转换为字符串"Array",就像在PHP中使用"{$version_config['list']}"一样。

此外,值中不需要大括号。简单地传递变量在value参数:

{assign var="version_list2" value=$version_config.list}