2012-04-10 19 views
-1

私はforeachから最後のオプションにクラスを追加する際に問題を抱えています。smarty foreach lastが正常に動作していませんか?

{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つの結果がある場合、1つのclass = "last"が追加されますが、3番目の結果のように中間結果が追加されますか?

<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

+1

申し訳ありませんが、それは年をとっており、人々が見ることが優先され、回答を望んでいたと想定していました。しかし、もう一度やりません。 –

+0

私はちょうど興味があります、これはどの構文ですか? – Shoe

答えて

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のクラスを追加しました –

+0

"ssubcateg"にタイプミスがありました。再試行する – rodneyrehm

関連する問題