Smarty foreach 迭代每 n 次新列
Smarty foreach iteration new column every nth time
我知道这个问题得到了回答,但方式有点不同。
我想要一个新的 bootstrap 列,每循环 6 次,所以它看起来像这样:
<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 次迭代开始时为真,因此 smarty 在 5 次迭代后创建了一个新列。 <div>
不是第 6 次关闭而是第 5 次关闭。
有什么建议吗?
最简单的方法是使用索引而不是迭代,因为索引从 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
我知道这个问题得到了回答,但方式有点不同。
我想要一个新的 bootstrap 列,每循环 6 次,所以它看起来像这样:
<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 次迭代开始时为真,因此 smarty 在 5 次迭代后创建了一个新列。 <div>
不是第 6 次关闭而是第 5 次关闭。
有什么建议吗?
最简单的方法是使用索引而不是迭代,因为索引从 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