使用 Laravel 避免 Eloquent 模型事件被多次/无限次触发

Avoid Eloquent model event from being triggered multiple/ infinite times using Laravel

我有以下代码:

应用服务提供商:

User::saved(function (User $user) {
    return $user->modifiedEvent();
});

User::deleted(function (User $user)   
    return $user->modifiedEvent();
});

在我的 User 模型中我有:

    public function modifiedEvent()
    {
        $stage = $this->isDirty('terms_and_conditions') 
             && $this->terms_and_conditions !== null ? 'completed' : 'incomplete';
        $this->stage_terms_and_conditions = $stage;
        return $this->save();
    }

我遇到的问题是 modifiedEvent 也修改了模型,这意味着我们得到了一个无限循环!

确保此事件不会因事件本身而多次触发的最佳方法是什么。

我将尝试使用 'saving' 事件,因此不需要在最后调用 $this->save() 。