Smarty foreach任意循环 - 使用索引添加不同的类?

时间:2013-06-09 15:07:41

标签: foreach indexing smarty

我有一个名为$ 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>
...

......但事实并非如此。有什么建议或更好的选择吗?

1 个答案:

答案 0 :(得分: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}