2016-12-30 80 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}