Smartyテンプレートの他の1次元配列から新しい配列を作成する必要があります。では、テンプレートファイルで配列を作成するための最良の方法は何でしょうか。
ありがとう、Sachin
Smarty3を使用すると、{$var = ['foo' => 'bar', 'sub' => [1, 2, 3]]}
および{$var.foo = 'other'}
これらのオプションでは不十分な場合は、 プラグイン関数 と記述します。
過去には、悪意のある方法とダーティな方法の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"}
どちらの場合も、テンプレート内で配列を使用できるようになり、単純なループが構築されます。とにかく、私はいつもこの方法でコードを変更することになったので、このようなものはまったく必要ありませんでした。
それは実際には非常に簡単です:
{assign 'myArray' ['cat', 'dog', 'rabbit']}
私はこれに対して助言しますが、このプラグインはこれを許可します: http://smarty.incutio.com/?page=set
MVCの観点から見ると、ビューの部分はデータの表示のみを担当します。モデルでデータを処理し、ビューでのみ表示するためにデータを渡すことができるように、アプリケーションを再考することをお勧めします。