使用第一个和最后一个属性时,为什么嵌套的IF在Smarty中不起作用?

时间:2018-10-23 13:24:28

标签: smarty smarty3

我正在尝试创建具有first和last属性的名称组合。这行得通,但是如果我把它嵌套到另一个如果坏了的话。

常规代码:

{{foreach from=$xxx.aaaa item='aaaa_item' name=members}}    

        {{if $smarty.foreach.members.last}}
         & {{$aaaa.bbbb}}
        {{elseif $smarty.foreach.members.first}}
        {{$aaaa.bbbb}}
        {{else}}
        , {{$aaaa.bbbb}}
        {{/if}}
     {{/foreach}}

结果

  

名称,名称,名称和名称

嵌套代码:

{{foreach from=$xxx.aaaa item='aaaa_item' name=members}} 
    {{if $aaaa_item.cccc == "no"}}

        {{if $smarty.foreach.members.last}}
         & {{$aaaa.bbbb}}
        {{elseif $smarty.foreach.members.first}}
        {{$aaaa.bbbb}}
        {{else}}
        , {{$aaaa.bbbb}}
        {{/if}}


    {{/if}}
{{/foreach}}

结果

  

,名称,名称,名称

所以它只给出最后一个'else'的结果

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

实际上找到了解决方案:

{{foreach from=$xxx.aaaa item=aaaa' name=members}}
    {{if $aaaa_item.cccc == "no"}}      
        {{if $smarty.foreach.members.first}}{{$aaaa.bbbb}}
        {{elseif $smarty.foreach.members.last}} & {{$aaaa.bbbb}}
        {{elseif $smarty.foreach.members}}, {{$aaaa.bbbb}}
        {{/if}}
    {{/if}}
{{/foreach}}