2016-12-30 2 views
5

В моем php-коде.Как назначить массив значения параметру в Smarty?

$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} это строковые значения "Array", а {$version_list2} является массивом. Нужно ли мне еще несколько операций для кодирования {$version_list2} в массив?

+1

Вместо кавычек ('значение = "..."'), попробуйте '[' и ']' ('значение = [...]'). Также см. Раздел [Определение массивов] (http://www.smarty.net/docs/en/language.syntax.variables.tpl), и вы заметите, что они больше похожи на нотацию json для определения значения. –

+0

Ваше предложение работает. Благодарю. Но, добавив [], значение становится массивом (array()). Просто удалите {} в порядке. – ZeroZerg

ответ

4

Двойные кавычки преобразуют массив $version_config.list в строку "Array" так же, как "{$version_config['list']}" в PHP.

Кроме того, нет необходимости в фигурных скобках в значении. Просто передать переменную в параметре value:

{assign var="version_list2" value=$version_config.list} 
Смежные вопросы