【解决】Thinkphp中if语句的嵌套用法

Thinkphp中if语句的嵌套用法】PS:纠结了很久,才发现if标签还可以这样写的。

问题是这样的:一条动态有多条回复,得控制有没有删除某条回复得权限
<if>
  显示回复<if>可以删除</if>
</if>

结果发现if标签不能这么嵌套,于是用eq代替内部的if(无奈之策)。虽然这个方法可行,但如果if中有多个条件AND或OR时,eq就没法替换if的这种功能了。


【如下方案经测试不可用(本来以为找到好方法了,失望之极呀,if1不会被解析的,而是原样输出)

------------------------------------------------------------------------------------------------

于是乎多方查找,终于发现了如下的解决方案。
<if  condition="$a eq 1">
    <if1 condition="$a eq 2">
       条件一
       <if2 condition="$a eq 3">
          条件二
       </if2>
    </if1>
</if>

目前标签是否可以嵌套是在标签库的定义文件里面定义的,默认支持的包括if iterate present

注意,只有if嵌套的时候if标签才用别名,如下情况第三个if就不需要别名了.
<if>
<if1>条件1</if1>
<if1>条件2</if1>
</if>

条件2的if就没必要用if2了。

-----------------------------------------------------------------------------


【实际上】Thinkphp是支持多标签嵌套的。如果嵌套太多无法解析,可以设置默认的嵌套层次。

默认的嵌套层次是3级,所以嵌套层次不能超过3层,如果需要更多的层次可以指定TAG_NESTED_LEVEL配置参数,

例如:

'TAG_NESTED_LEVEL' =>5

可以改变循环嵌套级别为5级。


】我碰到的实际问题其实并不是if嵌套问题

<if condition="$Think.session.UID eq $vo['user_id']">%2


阅读本文后,您的心情是:
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
知识共享许可协议
评论(0) 浏览(23692) 引用(0)
引用地址:
Tags:
« 【解决】Apache无法加载php_curl.dll解决办法 【解决】jQuery $.getScript()方法缓存问题 »

Blogger

  • blogger
  • 天之骄子
  • 职位:研发工程师
    铭言:
    阳光与欢乐同在,
    与我同在
    主页:
    blog.baiwand.com

分类目录

日志归档

主题标签

数据统计

  • 日志:151篇
  • 评论:45条
  • 碎语:264条
  • 引用:0条

链接表

随机日志 »

最新日志 »

最新评论 »

标签云 »

订阅Rss
sitemap