阅读(2107)
赞(8)
Laravel 8 使用本地作用域
2021-07-07 11:41:11 更新
一旦定义了作用域,就可以在查询该模型时调用作用域方法。不过,在调用这些方法时不必包含 scope
前缀。甚至可以链式调用多个作用域,例如:
$users = App\Models\User::popular()->active()->orderBy('created_at')->get();
借助 or
查询运行符整合多个 Eloquent 模型,可能需要使用闭包回调:
$users = App\Models\User::popular()->orWhere(function (Builder $query) {
$query->active();
})->get();
因为这样可能会有点麻烦,Laravel 提供了「更高阶的」orWhere
方法,它允许你在链式调用作用域时不使用闭包:
$users = App\Models\User::popular()->orWhere->active()->get();