ThinkPHP关于模板的一些嵌套、IF判断使用
2017-05-10 15:17
531 查看
> ##### 前言,现在有一组数据(涉及到3个数据表,order订单表,order_process办理流程表,process_status流程描述表),根据当前订单,展示相应信息
1.办理流程部分数据:
2.流程状态部分数据:
3.期望达到效果如下:
这里就需要用到几个部分的技巧结合
一般的循环嵌套使用
<volist name="list" id="vo"> <volist name="vo['sub']" id="sub"> {$sub.name} </volist> </volist>
其中第二个volist的name属性,也可以写作name="vo.sub"
IF判断使用
常用的判断中,不允许使用<,>,=之类的符号,改为:
标签 | 含义 |
---|---|
eq或者equal | 等于 |
neq或者notequal | 不等于 |
gt | 大于 |
egt | 大于等于 |
lt | 小于 |
elt | 小于等于 |
heq | 恒等于 |
nheq | 不恒等于 |
1. <eq name="name" value="value">value</eq>
比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量,例如: 当vo对象的属性(或者数组,或者自动判断)等于5就输出
2 .<eq name="vo.name" value="5"> {$vo.name} </eq>
3. <!-- 附加说明 判断数组大小--> <if condition="count($vo['additional']) gt 1"> 附加说明: <else /> other Framework </if>
4. <!-- 附加说明 判断数组大小--> <if condition="strlen($vo['additional']['0']) gt 1"> 附加说明: <else /> other Framework </if>
参考php
public function orderDetail($id, $userId) { $param['id'] = $id; $order = M('reorder')->where($param)->find(); //0.更新订单被查看的信息:查看人、查看时间 $watch['userId'] = $userId; $watch['posttime2'] = time(); M('reorder')->where($param)->save($watch); //获取当前项目的默认办理流程 $where['projectid'] = $order['projectid']; $immiprogram = M('reimmiprogram')->where($where)->find(); $orderStatus = M('reorderstatus')->where($where)->find(); $orderStatus['status'] = explode('|',$orderStatus['status']); //查找已经完成的办理流程 $param_process['orderid'] = $order['orderid']; $param_process['isfinish'] = 'true'; $status1 = M('reorderprocess')->where($param_process)->order('posttime')->select(); //根据当前订单状态,分割orderStatus $param_process['isfinish'] = 'false'; $status2 = M('reorderprocess')->where($param_process)->order('posttime')->select(); //$this->ajaxJSON($status2); //判断附加说明,是否含分隔符 foreach ($status1 as $key => &$value) { $value['additional'] = explode("|",$value['additional']); } foreach ($status2 as $key => &$item) { $item['additional'] = explode("|",$item['additional']); } //$this->ajaxJSON($status1); $status3 = array(); $least = count($status1)+count($status2); foreach ($orderStatus['status'] as $key => $value) { //当前正在办理的事项 if($key > $least){ array_push($status3,$value); } } //查找最新的流程附加信息 $param_newest['orderid'] = $order['orderid']; $process_newest = M('reorderprocess')->where($param_newest)->order('posttime desc')->find(); $counts = array(); array_push($counts,0); array_push($counts,count($status1)); array_push($counts,count($status1)+count($status2)); $this->assign('order',$order); $this->assign('immiprogram',$immiprogram); $this->assign('orderStatus',$orderStatus); $this->assign('process_newest',$process_newest); $this->assign('status1',$status1); $this->assign('status2',$status2); $this->assign('status3',$status3); $this->assign('counts',$counts); $this->display(); }
参考json数据status1
[ { "id": "135", "orderid": "2017YH1001", "status": "签约", "isfinish": "true", "additional": [ "客户上门拜访签约的" ], "posttime": "1491321600", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-05-10 14:37:08", "create_time": "2017-04-05 00:00:00" }, { "id": "136", "orderid": "2017YH1001", "status": "缴纳服务费", "isfinish": "true", "additional": [ "" ], "posttime": "1491321600", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-04-05 00:00:00", "create_time": "2017-04-05 00:00:00" }, { "id": "137", "orderid": "2017YH1001", "status": "提交移民信息表", "isfinish": "true", "additional": [ "" ], "posttime": "1491408000", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-04-06 00:00:00", "create_time": "2017-04-06 00:00:00" }, { "id": "138", "orderid": "2017YH1001", "status": "收集材料", "isfinish": "true", "additional": [ "" ], "posttime": "1491408000", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-04-06 00:00:00", "create_time": "2017-04-06 00:00:00" }, { "id": "139", "orderid": "2017YH1001", "status": "材料制作", "isfinish": "true", "additional": [ "" ], "posttime": "1491408000", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-04-06 00:00:00", "create_time": "2017-04-06 00:00:00" }, { "id": "149", "orderid": "2017YH1001", "status": "递交申请", "isfinish": "true", "additional": [ "" ], "posttime": "1491753600", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-04-10 00:00:00", "create_time": "2017-04-10 00:00:00" }, { "id": "150", "orderid": "2017YH1001", "status": "获得档案编号", "isfinish": "true", "additional": [ "" ], "posttime": "1492012800", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-04-13 00:00:00", "create_time": "2017-04-13 00:00:00" }, { "id": "151", "orderid": "2017YH1001", "status": "已补件到香港入境处", "isfinish": "true", "additional": [ "2017.02.27 补录资料", "2017.03.24 补录资料 " ], "posttime": "1493827200", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-05-10 13:45:48", "create_time": "2017-05-04 00:00:00" }, { "id": "152", "orderid": "2017YH1001", "status": "已补入资料", "isfinish": "true", "additional": [ "" ], "posttime": "1494432000", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-05-11 00:00:00", "create_time": "2017-05-11 00:00:00" }, { "id": "153", "orderid": "2017YH1001", "status": "获得原则性批准信", "isfinish": "true", "additional": [ "" ], "posttime": "1502208000", "recorder": "Candy", "checkinfo": "true", "update_time": "2017-05-10 14:43:03", "create_time": "2017-08-09 00:00:00" } ]
参考html
<li class="descriptionDetailList"> <ul class="descriptionUl1"> <volist name="status1" id="vo"> <li class="clearfix"> <h5 class="finishedH5">{$counts['0']+$key+1}</h5> <div class="finishedSchedule"> <p>{$vo.status}</p> <span>完成时间:{$vo.posttime|date="Y-m-d",###}</span> <!-- 附加说明 判断数组大小--> <if condition="strlen($vo['additional']['0']) gt 1"> <p><span>附加说明:</span></p> <else /> </if> <volist name="vo.additional" id="vo2"> <span>{$vo2}</span> <br/> </volist> </div> <span class="finished">【完成】</span> </li> </volist> <volist name="status2" id="vo"> <li class="clearfix"> <h5 class="underwayH5">{$counts['1']+$key+1}</h5> <div class="underwaySchedule"> <p>{$vo.status}</p> <span>进行中......</span> <!-- 附加说明 判断数组大小--> <if condition="strlen($vo['additional']['0']) gt 1"> <p><span>附加说明:</span></p> <else /> </if> <volist name="vo.additional" id="vo2"> <span>{$vo2}</span> <br/> </volist> </div> <span class="underway">【详情】</span> </li> </volist> <volist name="status3" id="vo"> <li class="clearfix"> <h5 class="beforeH5">{$counts['2']+$key+1}</h5> <div class="beforeSchedule"> <p>{$vo}</p> <span>未开始</span> </div> <span class="before">......</span> </li> </volist> </ul> </li>
相关文章推荐
- ThinkPHP 3.2.2 在 模板中 多重循环嵌套中使用 if 判断标签
- ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签
- ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签
- [J2EE]使用 EJB 组件你需要了解些什么呢?--是一些关于使用条件的判断标准
- thinkphp if判断嵌套语句
- thinkphp中模板的if语句多重判断
- thinkphp中模板中if判断没有反应,原来是数组访问方式引起的
- @while+do。。。done和case。。。esac或者if。。。then。。fi的嵌套使用以及if的!判断@
- thinkphp模板页面多条件if判断的写法
- thinkphp的html模板中if的使用
- thinkphp3.2.3关于模板使用之一二
- 关于Iframe跨域,判断加载等的一些使用心得
- 关于struts2 if标签的一些使用方法
- ThinkPHP问题收集:模板中使用U方法时无法嵌套大括号,For标签,插入数据,新增的表字段缓存问题
- ThinkPHP 模板中IF的使用
- shell中使用if判断时用到的一些参数
- ThinkPHP模板中使用<volist>嵌套超过三层时出错-解决方法
- 关于ThinkPHP里面IF标签的使用
- 笔记--ThinkPHP模板判断之if elseif else
- thinkphp模板中标签<volist>,<if>和 U函数的使用