首頁  >  文章  >  後端開發  >  程序员 - Thinkphp 模板引擎 if 嵌套层级过多的问题,嵌套3级就报错,上完整代码

程序员 - Thinkphp 模板引擎 if 嵌套层级过多的问题,嵌套3级就报错,上完整代码

WBOY
WBOY原創
2016-06-06 20:42:461213瀏覽

<code><if condition="$detail.order.payment.app_rpc_id eq '-1' ">
       <if condition="$detail.order.status eq 'dead' "> 
             已作废
       <elseif condition="$detail.order.status eq 'finish' "></elseif>
           已完成
       <else></else>
          <if condition="$detail.order.pay_status eq '1' "> 
                已支付
           <elseif condition="$detail.order.pay_status eq '2'"></elseif>
                 已付款至担保方
           <elseif condition="$detail.order.pay_status eq '3'"></elseif>
                  部分付款
            <elseif condition="$detail.order.pay_status eq '4'"></elseif>
                   部分退款
             <else></else>
                   全额退款
              </if>   
            </if>
     <else></else>


     </if>

</code>

程序员 - Thinkphp 模板引擎 if 嵌套层级过多的问题,嵌套3级就报错,上完整代码

回复内容:

<code><if condition="$detail.order.payment.app_rpc_id eq '-1' ">
       <if condition="$detail.order.status eq 'dead' "> 
             已作废
       <elseif condition="$detail.order.status eq 'finish' "></elseif>
           已完成
       <else></else>
          <if condition="$detail.order.pay_status eq '1' "> 
                已支付
           <elseif condition="$detail.order.pay_status eq '2'"></elseif>
                 已付款至担保方
           <elseif condition="$detail.order.pay_status eq '3'"></elseif>
                  部分付款
            <elseif condition="$detail.order.pay_status eq '4'"></elseif>
                   部分退款
             <else></else>
                   全额退款
              </if>   
            </if>
     <else></else>


     </if>

</code>

程序员 - Thinkphp 模板引擎 if 嵌套层级过多的问题,嵌套3级就报错,上完整代码

https://github.com/liu21st/thinkphp/blob/master/ThinkPHP/Library/Think/Template/TagLib/Cx.class.php#L24

官方的Cx的模板库定义了if的默认嵌套层数,修改这个层数可以支持更多的嵌套格式

最大允许3级,超过请用switch

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn