牛骨文教育服务平台(让学习变的简单)

范围查询

定义范围查询

范围查询可以让您轻松的重复利用模型的查询逻辑。要设定范围查询,只要定义有 scope 前缀的模型方法:

class User extends Model {
    public function scopePopular($query)
    {
        return $query->where("votes", ">", 100);
    }
    public function scopeWomen($query)
    {
        return $query->whereGender("W");
    }
}

使用范围查询

$users = User::popular()->women()->orderBy("created_at")->get();

动态范围查询

有时您可能想要定义可接受参数的范围查询方法。只要把参数加到方法里:

class User extends Model {
    public function scopeOfType($query, $type)
    {
        return $query->whereType($type);
    }
}

然后把参数值传到范围查询方法调用里:

$users = User::ofType("member")->get();