1

我正在实施此处记录的 Laravel Global Scope,但这似乎对我不起作用。下面是我在User.php模型中的代码行

<?php

namespace App;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * The "booted" method of the model.
     *
     * @return void
     */
    protected static function booted()
    {
        static::addGlobalScope('age', function (Builder $builder) {
            $builder->where('age', '>' , 100);
        });
    }
}

当我解雇User::all()它时,它只会给我用户查询select * from users

如果我做错了什么或在这里遗漏了什么,请告诉我......

4

1 回答 1

3

我终于发现我犯了什么错误。如果有人这样做,请检查以下详细信息。

正如问题中提到的,我使用的是 Laravel 6.x,但我指的是 Laravel 7.x,它有很大的不同。在 Laravel 6.x 中,我们使用

protected static function boot(){
   parent::boot();
   static::addGlobalScope(new BlockedUserScope);
}

在 Laravel 7.x 中,我们使用

protected static function booted(){
   static::addGlobalScope(new BlockedUserScope);
}
于 2020-07-18T17:41:18.327 回答