(5)查询范围
在控制器中 模型操作
get() 和 all() 只能单独使用来查询数据
想要链式操作查询数据 需要使用find() 和select() 这里返回的都是对象集
所以,在运用到查询范围时,$list = UserModel::scope(‘email,status’)->all();会出现报错现象,可以将all()方法改为select()方法
scope闭包
scope(匿名函数);
范例:list=UserModel::scope(‘email′)−>scope(‘status′)−>scope(function(list=UserModel::scope(‘email′)−>scope(‘status′)−>scope(function(query) {
$query->order(‘id’, ‘desc’);
})
->select();
全局查询范围
可以给模型定义全局的查询范围,在模型类添加一个静态的 base 方法即可,例如我们给模型类增加一个全局查询范围,用于查询状态为1的数据:
protected static function base($query)
{
$query->where('status',1);
}