为什么雄辩的模型“启动”方法无法在Laravel 7.x上触发?

时间:2020-09-22 07:33:34

标签: laravel eloquent

我在Eloquent模型上有这个简单的代码,可以在模型creating事件期间触发,以自动为模型创建一个子弹。

    use Illuminate\Support\Str; 

    ...

    protected static function booted()
    {
        static::creating(function (self $model) {
            if (!$model->slug) {
                $model->slug = Str::slug($model->title);
            }
        });
    }

当它在我们的暂存站点上启动时并没有触发,我实际上不知道为什么。它在本地工作正常。尝试创建新模型时,我只会得到General error: 1364 Field 'slug' doesn't have a default value...

当我将其更改为此时,它将按预期工作:

    use Illuminate\Support\Str; 

    ...

    protected static function boot()
    {
        parent::boot();

        static::creating(function (self $model) {
            if (!$model->slug) {
                $model->slug = Str::slug($model->title);
            }
        });
    }

但是,这是Laravel 7.x的安装,因此肯定可以使用booted方法吗?

有人知道booted工作时boot不能触发的原因吗?

0 个答案:

没有答案