Laravel Observer或MySQL Trigger?

时间:2017-09-23 20:37:44

标签: laravel

我感到困惑,这是laravel观察者或MySQL触发器之间的最佳实践。

在Laravel中,我的代码看起来像

public function updated(My_Activity $my_activity)
{
    $activity = new Activity_Log();
    $activity->activity_id = $my_activity->id;
    $activity->status = $my_activity->status;
    $activity->description = $my_activity->description;
    $activity->save();
}

在MySQL中,

BEGIN
INSERT INTO Activity_Log
SET id = OLD.id, status = OLD.status, description = OLD.description
END

最佳做法是什么?未来对其中一个人有好的影响吗?

1 个答案:

答案 0 :(得分:3)

我更喜欢Laravel Observer选项,因为它允许您将业务逻辑保留在应用程序中(源代码管理)。此外,通过使用Eloquent,您可以将业务逻辑保持在相同的抽象级别。

出于同样的原因,Laravel引入了一个Task调度程序。它允许您将cron条目保持在源代码管理下。

https://laravel.com/docs/5.5/scheduling

  

过去,您可能已为每项任务生成了Cron条目   需要在您的服务器上安排。但是,这很快就会变成一个   痛苦,因为您的任务计划不再受源代码控制   您必须通过SSH连接到服务器才能添加其他Cron条目。