我有一个名为$ 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>
...
......但事实并非如此。有什么建议或更好的选择吗?
答案 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}