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 回答