我知道这个问题得到了解答,但方式略有不同。
我想要每循环第6次使用一个新的bootstrap列,所以它看起来像这样:
<div class="row">
<div class="col-xs-6">
<a href="#">LINK1</a>
<a href="#">LINK2</a>
<a href="#">LINK3</a>
<a href="#">LINK4</a>
<a href="#">LINK5</a>
<a href="#">LINK6</a>
</div>
<div class="col-xs-6">
<a href="#">LINK7</a>
<a href="#">LINK8</a>
<a href="#">LINK9</a>
<a href="#">LINK10</a>
<a href="#">LINK11</a>
<a href="#">LINK12</a>
</div>
</div>
我试过了:
<div class="row">
{foreach name='sub_categories' from=$sub_categories item='sub'}
{if $smarty.foreach.sub_categories.first or $smarty.foreach.sub_categories.iteration is div by 6}
<div class="col-xs-6">
{/if}
<a href="#">LINK</a>
{if $smarty.foreach.sub_categories.iteration-1 is div by 6}
</div>
{/if}
{/foreach}
</div>
但这不起作用,因为:
$smarty.foreach.sub_categories.iteration is div by 6
当第6次迭代开始时,为true,因此smarty在5次迭代后创建一个新列。 <div>
也没有第6次关闭,而是第5次关闭。
有什么建议吗?
答案 0 :(得分:2)
最简单的方法是使用索引而不是迭代,因为索引从0开始
<div class="row">
{foreach name='sub_categories' from=$sub_categories item='sub'}
{if $smarty.foreach.sub_categories.first or $smarty.foreach.sub_categories.index is div by 6}
<div class="col-xs-6">
{/if}
<a href="#">LINK</a>
{if $smarty.foreach.sub_categories.last || $smarty.foreach.sub_categories.iteration is div by 6}
</div>
{/if}
{/foreach}
</div>
你也可能想检查sub_categories.last的结束div,以防物品数量不是6的倍数,即9