Laravel事件更新使SQL崩溃

时间:2018-08-16 21:24:28

标签: php sql laravel

我有一个ActionLogTrait特质,看起来像下面的样子;

<?php

namespace App\Helpers;

trait ActionLogTrait
{
    public static function bootActionLogTrait()
    {
        self::updated(function($model){
            $model->update([
                'updated_by' => auth()->user()->id,
            ]);
        });
    }
}

我已将此特征添加到我的Posts模型中。

但是,当我使用PostsPostController对此$post->update(['name' => $request->name]);模型进行更新时,SQL将停止运行几分钟。就像它在循环中一样。在不使用特征的情况下,更新工作正常。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您陷入了无限循环,因为您是在发生更新事件之后更新模型的,因此会触发另一个更新事件,从而再次更新模型,依此类推...