Laravel日常笔记系列之二
-
1 min
全局作用域
全局范围能为给定模型的所有查询添加约束。Laravel 自带的 软删除功能 就利用全局作用域从数据库中提取「未删除」的模型。编写自定义的全局作用域可以提供一个方便、简单的方法来确保给定模型的每个查询都受到一定的约束。
编写全局作用域
编写全局作用域很简单。首先定义一个实现
Illuminate\Database\Eloquent\Scope
接口的类。这个接口要求你实现一个方法:
apply
。
apply
方法可以根据需要添加
where
条件到查询:
<?php
* Created by PhpStorm.
* User: zhanglingyu
* Date: 2019-03-08
* Time: 13:09
namespace App\Scopes;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class IdScope implements Scope
* Apply the scope to a given Eloquent query builder.
* @param \Illuminate\Database\Eloquent\Builder $builder
* @param \Illuminate\Database\Eloquent\Model $model
* @return void
public function apply(Builder $builder, Model $model)
{[](http://)
// TODO: Implement apply() method.
return $builder->where('id', '>', 5);