2012-04-10 128 views
-1

即时通讯添加一个类到foreach的最后一个选项有麻烦,它由于某种原因重复它的任何想法?smarty foreach上次无法正常工作?

{if $subcategories} 
<div class="subcategories"> 
{if $subcategories|@count < 6} 
    <ul> 
{/if} 
{foreach from=$splitted_subcategories item="ssubcateg"} 
    {if $subcategories|count >= 6} 
     <div class="subcategories"> 
      <ul> 
    {/if} 
     {foreach from=$ssubcateg item=category name="ssubcateg"} 
     {if $category.category_id}<li{if $smarty.foreach.ssubcateg.last} class="last"{/if}><a href="{"categories.view?category_id=`$category.category_id`"|fn_url}" class="strong">{$category.category}</a></li>{/if} 

    {/foreach} 
    {if $subcategories|count >= 6} 
      </ul> 
     </div> 
    {/if} 
{/foreach} 
{if $subcategories|count < 6} 
</ul> 
{/if} 
</div> 
{/if} 

输出: 似乎重复?如果有6个结果是增加一个类=“最后”,但在第三个结果中的中间结果?

<ul> 
<li class="last"><a class="strong" href="#">Link</a></li> 
    <li><a class="strong" href="#">Link</a></li> 
    <li class="last"><a class="strong" href="#">Link</a></li> 
    <li><a class="strong" href="#">Link</a></li> 
</ul> 
+0

我不知道你为什么决定做你刚做的事。如果你发布了一个问题,但没有得到你正在寻找的回复,[删除它](http://stackoverflow.com/questions/10050215/smarty-foreach-last-not-working-correctly-where-have-我错了),并重新发布完全相同的问题并不是正确的方式去在这里的事情。请不要这样做。 – Lix 2012-04-10 23:27:33

+1

对不起,假设它年龄较大,优先下降,希望得到回应。但不会再这样做。 – 2012-04-10 23:46:02

+0

我只是好奇,这是什么语法? – Shoe 2012-04-11 00:00:08

回答

0

您最后的项目正在重复,因为您正在检查»在内部循环中是最后一个«。你忽略了内部循环本身是循环的。尝试:

{foreach from=$splitted_subcategories item="ssubcateg" name="outer"} 
    {foreach from=$ssubcateg item=category name="ssubcateg"} 
    {if $smarty.foreach.outer.last && $smarty.foreach.ssubcateg.last} 
     … 
+0

似乎没有工作?它现在在最后2 – 2012-04-11 20:03:57

+0

上添加了类,在“ssubcateg”中有一个错字。再试一次 – rodneyrehm 2012-04-11 21:29:51