添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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);