0

組み込みの {call} 関数の賢いドキュメント (特定のドキュメント ページへのリンク) を読んでいるときに、次のコード スニペットを見ました (これはドキュメントの例です)。

{function name=menu level=0}
  <ul class="level{$level}">
  {foreach $data as $entry}
    {if is_array($entry)}
      <li>{$entry@key}</li>
      {call name=menu data=$entry level=$level+1}
    {else}
      <li>{$entry}</li>
    {/if}
  {/foreach}
  </ul>
{/function}

表現に戸惑う

$entry@key

誰かがそれがどのように機能するか説明できますか?

ありがとう!

4

1 に答える 1

0

$variable@keyループ自体の「プロパティ」をループの現在の値を保持する変数に関連付けるブロックで使用できる特別{foreach}構文です。

Smarty 2 では と言わなければなりませんでしたが$smarty.foreach.name_of_foreach_block.name_of_property、Smarty 3 ではこれを に簡略化してい$variable_from_loop@propertyます。

与えられた例では、 のようなもの、またはマニュアルページに見られる{if $entry@iteration is odd}class="odd"{else}class="even"}より複雑なバージョンを使用することもできます。

于 2013-06-16T21:27:35.650 に答える