laravel 中scope 应用

Posted lianruihong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 中scope 应用相关的知识,希望对你有一定的参考价值。

在模型中定义

protected static function boot() {
Model::boot();

static::addGlobalScope(‘defaultOrder‘, function (Builder $builder) {
$builder->orderBy(‘id‘, ‘desc‘);
});

static::addGlobalScope(‘top_level‘, function (Builder $builder) {
$builder->where(‘reply_to‘, null);
});
}

 

如上所示,设置了默认的排序 及增加查询条件

然而 要注意的是,在查询中,当不需要scope的时侯,需要加上

比如删除时 需要加上调用静态方法 withoutGlobalScope

$id = request("id");
Model::withoutGlobalScope(‘top_level‘)->where(‘id‘, $id)

  

 

以上是关于laravel 中scope 应用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.8:如何在 Global Scope 的 apply 方法中解析 auth()->user()?

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

Laravel:如何在控制器的几种方法中重用代码片段

laravel特殊功能代码片段集合

Laravel 5.8 有条件地插入 sql 片段

Laravel Query builder / Scope question 这里满足同一范围内多个条件的要求