2016-12-30 8 views
5

In meinem PHP-Code.Wie weise ich Smarty ein Array mit einem Wert zu?

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

In meinem tpl Code ist

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

{$version_list2} ein String-Werte "Array", während {$version_list2} ein Array ist. Benötige ich weitere Operationen, um {$version_list2} in ein Array zu codieren?

+1

Statt Anführungszeichen ('value = "..."'), versuchen Sie '[' und ']' ('value = [...]'). Siehe auch [Definieren von Arrays] (http://www.smarty.net/docs/en/language.syntax.variables.tpl) und Sie werden bemerken, dass sie eher der Json-Notation für den Wert entsprechen. –

+0

Ihr Vorschlag ist bearbeitet. Vielen Dank. Aber wenn Sie [] hinzufügen, wird der Wert array (array()), Just remove {} ist ok. – ZeroZerg

Antwort

4

Die doppelten Anführungszeichen konvertieren $version_config.list Array zu String "Array" genauso wie "{$version_config['list']}" in PHP.

Auch geschweifte Klammern im Wert sind nicht erforderlich. Übergeben Sie einfach die Variable im value Parameter:

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