【问题标题】:Laravel Observer not triggered on UpdateorCreateLaravel 观察者未在 UpdateorCreate 上触发
【发布时间】:2022-05-09 11:59:32
【问题描述】:

我有模型 Model1,我想在保存时更新特定列的排名。

protected static function boot()
{
    parent::boot();
    static::saved(function ($model) {
         $service = new  Service();
         $service->updateRank($model->id);
    });
}

我在保存的里面放了一个日志。但它没有被调用

【问题讨论】:

  • 您确定有问题的更新不会碰巧重新应用已经存在的数据吗?如果是,Eloquent 将忽略它并且不会触发“已保存”事件。查看Illuminate\Database\Eloquent\Model::save()finishAndSave() 调用负责触发事件,但如果 $saved 标志不是 true,则不会发生这种情况。

标签: laravel observers


【解决方案1】:

你应该使用方法booted

protected static function booted()
{
    static::saved(function ($model) {
        $service = new  Service();
        $service->updateRank($model->id);
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多