2017-09-23 43 views
0

我感到困惑,这是laravel观察者或MySQL触发器之间的最佳实践。Laravel Observer或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 

什么是最好的做法是什么?未来他们中的一个对他们有好的影响吗?

回答

2

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

出于同样的原因,Laravel引入了一个Task scheduler。它允许你保持你的cron条目在源代码控制之下。

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

在过去,你可能已经为您生成 需要安排您的服务器上的每个任务cron项。但是,这可能很快就会变成一种难题,因为您的任务计划不再位于源代码管理中,您必须通过SSH连接到您的服务器才能添加其他Cron条目。

+0

好的回答, 这意味着,让我们跟踪我们从laravel构建的每个代码。 :) – Bobby