thinkphp3.1.3源码分析(4)连贯操作where方法
来源:互联网 发布:淘宝小技巧 编辑:程序博客网 时间:2024/05/14 06:01
我们常用实例化Model对象之后使用where()方法,传的多的是字符串和数组。使用起来非常方便,但是有时候我们想使用数组的方式传参,又想在其中添加逻辑判断,比如默认的是and ,我现在想换成or,怎么办呢?实际where()方法已经考虑到这个了,看看代码吧!
方法/步骤
当有N个(N>=2)个where['field']=xxx的时候,默认的运算规则是AND,但是当我们想使用OR的时候,得分成多个子查询,先从2个条件或者开始说起吧。
如下代码所示,首先是查看是否有键值为_logic的元素,如果有,那么就把$where['_logic']对应的值作为运算规则($operate)。
然后删除$where['_logic'],对其他元素遍历,然后使用$operate连接。
最后,最把最后组成的字符串中的最后一个$operate删掉。
但是那么如果,我们又想写AND,又想写OR呢?
哈哈,是的,应该如何处理呢?
这里借助官方的例子(截图)说明
如上图所示,那样相当于是$where是$map元素,查询的时候传入的是where($map)
if(0===strpos($key,'_'))
$whereStr .= $this->parseThinkWhere($key,$val);
然后进入parseThinkWhere()
substr($this->parseWhere($val),6);
这样就删掉了' WHERE'再与之前的拼接。
0 0
- thinkphp3.1.3源码分析(4)连贯操作where方法
- thinkphp3.1.3源码分析(3)连贯操作table方法
- 关于ThinkPHP3.2中连贯操作where的说明
- ThinkPHP3.1快速入门(4)连贯操作
- 【thinkphp3.x】thinkphp3.x中连贯操作
- ThinkPHP3.1快速入门连贯操作
- thinkphp3.1.3源码分析(1)
- ThinkPHP3.1.3源码分析(一) 入口文件分析
- thinkphp3.1.3源码分析(2)配置项的读取
- Thinkphp3.1.3源码分析(5)模版“常量”配置
- Thinkphp3.1.3源码分析(6)去掉自动创建目录
- ThinkPHP3.1.3源码分析(二) runtime.php
- ThinkPHP3.1.3源码分析(三) common.php
- ThinkPHP3.1.3源码分析(四) Think.class.php
- ThinkPHP3.1.3源码分析(五) App.class.php
- PHP类连贯操作的实现方法
- 连贯操作
- ThinkPHP框架模型连贯操作(八)
- [JavaIDE]MyEclipse和Eclipse的关系
- thinkphp3.1.3源码分析(3)连贯操作table方法
- Tomcat启动错误的几件事
- Eclipse里启动Tomcat,配置内存大小
- linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数
- thinkphp3.1.3源码分析(4)连贯操作where方法
- 首试debian + vim
- POJ 3280 简单区间 DP
- linux系统编程之信号(五):信号集操作函数,信号阻塞与未决
- 【cocos2dx-3.0beta-制作flappybird】就要结束了吗—Android交叉编译以及后继
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
- Thinkphp3.1.3源码分析(5)模版“常量”配置
- JVM中的堆和栈
- Django学习笔记