假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下:
$User->where('status=1')->order('create_time')->limit(10)->select();
这里的where、order和limit方法就称之为连贯操作方法,除了select方法必须放到最后一个外(因为select方法并不是连贯操作方法),连贯操作的方法调用顺序没有先后,例如,下面的代码和上面的等效:
$User->order('create_time')->limit(10)->where('status=1')->select();
其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:
$User->where('id=1')->field('id,name,email')->find();
$User->where('status=1 and id=1')->delete();
连贯操作仅在当次查询或者操作有效,完成后会自动清空连贯操作的所有传值(有个别特殊的连贯操作会记录当前的传值,如cache连贯操作)。简而言之,连贯操作的结果不会带入以后的查询。
作用
支持的参数类型
where
用于查询或者更新条件的定义
字符串、数组和对象
table
用于定义要操作的数据表名称
字符串和数组
alias
用于给当前数据表定义别名
字符串
data
用于新增或者更新数据之前的数据对象赋值
数组和对象
field
字符串和数组
order
用于对结果排序
字符串和数组
limit
字符串和数字
page
字符串和数字
group
字符串
having
字符串
join*
字符串和数组
union*
字符串、数组和对象
distinct
布尔值
lock
用于数据库的锁机制
布尔值
cache
用于查询缓存
支持多个参数(以后在缓存部分再详细描述)
relation
字符串
validate
用于数据自动验证
数组
auto
用于数据自动完成
数组
filter
用于数据过滤
字符串
scope*
用于命名范围
字符串、数组
所有的连贯操作都返回当前的模型实例对象(this),其中带*标识的表示支持多次调用。
例如:
$User->filed('id,user_name',false)->select(); //只查询id,user_name这两个字段
$User->filed('id,true)->select(); //只查询id,user_name之外的其他字段
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。