Laravel 拉拉维尔5号在重审事件之前

Laravel 拉拉维尔5号在重审事件之前,laravel,events,Laravel,Events,我用的是拉威尔5.6 我有一个用户模型,也有它的迁移,我迁移了它 我在用户表中有一些数据 当我想检索我的用户列表时,如下所示: User::get(); User::all(); User::where('created_at', date('Y-m-d H:i:s'))->get(); 或者以另一种方式 我需要这些查询不显示id 1 我希望每个查询不显示id 1,而不是手动显示 我该怎么办 我查看了事件和其他内容,请给出示例代码或清晰的描述,不要参考链接。您可以使用laravel匿名全

我用的是拉威尔5.6

我有一个用户模型,也有它的迁移,我迁移了它

我在用户表中有一些数据

当我想检索我的用户列表时,如下所示:

User::get();
User::all();
User::where('created_at', date('Y-m-d H:i:s'))->get();
或者以另一种方式

我需要这些查询不显示id 1

我希望每个查询不显示id 1,而不是手动显示

我该怎么办


我查看了事件和其他内容,请给出示例代码或清晰的描述,不要参考链接。

您可以使用laravel匿名全局作用域

User::where('id', '!=', User::first()->id)->where('created_at', date('Y-m-d H:i:s'))->get();
<?php

namespace App;

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

class User extends Model
{
    /**
     * The "booting" method of the model.
     *
     * @return void
     */
    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('id', function (Builder $builder) {
            $builder->where('id', '!=', 1);
        });
    }
}

您可以通过使用laravel匿名全局作用域来实现这一点

<?php

namespace App;

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

class User extends Model
{
    /**
     * The "booting" method of the model.
     *
     * @return void
     */
    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('id', function (Builder $builder) {
            $builder->where('id', '!=', 1);
        });
    }
}

您需要的是更具体的,。您需要的是更具体的,.OP是针对每个查询的解决方案,而无需手动指定。OP是针对每个查询的解决方案,而无需手动指定。