Smartyでオブジェクトを操る時の問題解決>プロパティを配列の添え字に使用できない?

表題の通りなのですが、Smartyでオブジェクトのプロパティを配列の添え字に使用できません。
#実は私がやり方を知らないだけ、という可能性は多分にありますが。

どういうことかと言うと、
[smarty]
{foreach from=$list item=val}
{$hogeList[$val->id]->name|escape}
{/foreach}
[/smarty]
というようにオブジェクト($val)のプロパティ($val->id)を添え字に使用するとエラーが出てしまいます。
このような場合は
 [smarty]
{foreach from=$list item=val}
{assign var=”id” value=$val->id}
{$hogeList[$id]->name|escape}
{/foreach}
[/smarty]
とすると、問題無く動作します。何かあったらAssignしてやれ、という感じで使っていますが、どうなのですかね。。

タイトルとURLをコピーしました