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

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

WBOY
WBOYOriginal
2016-06-06 20:42:461211browse

<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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn