tp5 php在范围内,TP5 scope 范围查询 以及 useGlobalScope(true/false)全局查询范围

设置查询范围

//在模型中设置查询范围

namespace app\index\model;

use think\Model;

class User extends Model

{

protected function scopeThinkphp($query)

{

$query->where('name','thinkphp')->field('id,name');

}

protected function scopeAge($query)

{

$query->where('age','>',20)->limit(10);

}

}

使用查询范围

// 查找name为thinkphp的用户

User::scope('thinkphp')->find();

// 查找年龄大于20的10个用户

User::scope('age')->select();

// 查找name为thinkphp的用户并且年龄大于20的10个用户

User::scope('thinkphp,age')->select();

闭包使用

User::scope(function($query){

$query->where('age','>',20)->limit(10);

})->select();

全局查询范围的定义

如果你的所有查询都需要一个基础的查询范围,那么可以在模型类里面定义一个静态的base方法,例如:

namespace app\index\model;

use think\Model;

class User extends Model

{

// 定义全局的查询范围

protected function base($query)

{

$query->where('status',1);

}

}

全局查询范围开关

// 关闭全局查询范围

User::useGlobalScope(false)->get(1);

// 开启全局查询范围

User::useGlobalScope(true)->get(2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值