0

$items という配列があり、残りとは異なる最初の 3 つの項目のみをスタイルしようとしています。私は次のコードを考えました...

{foreach from=$items item=item}
  {if $smarty.foreach.item.index < 3}
    <div class="style1">{$item->title}</div>
  {elseif $smarty.foreach.item.index >= 3}
    <div class="style2">{$item->title}</div>
  {/if}
{/foreach}

...このマークアップになります...

<div class="style1">item title value</div>
<div class="style1">item title value</div>
<div class="style1">item title value</div>

<div class="style2">item title value</div>
<div class="style2">item title value</div>
<div class="style2">item title value</div>
<div class="style2">item title value</div>
<div class="style2">item title value</div>
...

...しかし、そうではありません。提案やより良いオプションはありますか?

4

1 に答える 1

0

foreach ループに名前を付けて、反復番号を参照できるようにする必要があります。

{foreach from=$items item=item name=itemList}
  {if $smarty.foreach.itemList.iteration < 3}
    <div class="style1">{$item->title}</div>
  {elseif $smarty.foreach.itemList.iteration >= 3}
    <div class="style2">{$item->title}</div>
  {/if}
{/foreach}
于 2013-06-09T18:00:27.647 に答える