web-dev-qa-db-ja.com

smartyテンプレートで配列を作成しますか?

Smartyテンプレートの他の1次元配列から新しい配列を作成する必要があります。では、テンプレートファイルで配列を作成するための最良の方法は何でしょうか。

ありがとう、Sachin

21
sachin sawant

Smarty3を使用すると、{$var = ['foo' => 'bar', 'sub' => [1, 2, 3]]}および{$var.foo = 'other'}

これらのオプションでは不十分な場合は、 プラグイン関数 と記述します。

29
rodneyrehm

過去には、悪意のある方法とダーティな方法の2つのアプローチを使用して、tpl内に配列をすばやく割り当てていました。

{* Am I evil? *}
{php}
    $array = array("cat", "dog", "rabbit");
    $this->assign("myArray", $array);
{/php}

{* Am I dirty? *}
{assign var='myArray' value=','|explode:"cat,dog,rabbit"}

どちらの場合も、テンプレート内で配列を使用できるようになり、単純なループが構築されます。とにかく、私はいつもこの方法でコードを変更することになったので、このようなものはまったく必要ありませんでした。

11
DerVO

それは実際には非常に簡単です:

{assign 'myArray' ['cat', 'dog', 'rabbit']}
7
Eugene Kuzmenko

私はこれに対して助言しますが、このプラグインはこれを許可します: http://smarty.incutio.com/?page=set

1
Jeremy

MVCの観点から見ると、ビューの部分はデータの表示のみを担当します。モデルでデータを処理し、ビューでのみ表示するためにデータを渡すことができるように、アプリケーションを再考することをお勧めします。

1
Catalin