0

我正在更新我的模型实例或插入一个像这样的新实例:

$model = Model::updateOrCreate([id' => $request['id']],
$model_to_update_array);

我只想在更新现有模型实例('tourist')时执行一些代码(而不是在创建新模型实例或没有任何更改时)。

我已经阅读了有关 Eloquent 事件的https://laravel.com/docs/5.4/eloquent#events,在我看来,我需要使用更新更新事件。据我了解,这些事件是 Laravel 中“内置”的,所以我不必从这里使用很多东西:https ://laravel.com/docs/5.4/events

我还没有找到说明如何实现 Eloquent 事件的教程。由于我对事件概念完全陌生,因此我很难理解如何使用它们。任何人都可以删除一个关于 Eloquent 事件(不是一般事件,而是特别是 Eloqeunt 事件)的好教程的链接,或者可以在这里简要解释一下?

先感谢您!

4

2 回答 2

1

为特定模型添加 Eloquent 事件的最简单方法是覆盖其boot()方法:

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

    static::updating(function ($model) {

    });
}

当您将其放入模型中时,每次更新模型时都会运行匿名函数。static::updating()请注意,调用和static::updated()取决于您想要执行代码的时间之间存在差异。

于 2017-08-15T11:22:21.220 回答
0

@TheFallen 在 StackOverflow 上的另一个线程中对这个问题给出了很好的回答,如果您对彻底解释的解决方案感兴趣,请阅读:

Laravel Eloquent Events - 如果更新,实现保存模型

于 2017-08-16T09:05:58.460 回答