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

时间:2017-02-09 22:34:54

标签: laravel laravel-5 laravel-5.2 laravel-5.1

我有以下代码:

AppServiceProvider:

df = pd.DataFrame(0, index = range(1,908), columns=range(1,908))
for index, row in exex12.iterrows():
    df.set_value(row[1],row[2],row[0])

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(); } 也会修改模型,这意味着我们会得到一个无限循环!

最好的方法是确保此事件不会因自身事件而多次触发。

1 个答案:

答案 0 :(得分:2)

我会尝试使用'保存'事件,因此最后无需调用$ this-> save()。