Laravel databaseのトランザクション関数
2128 ワード
Laravelのトランザクションは次のように使用されます.
以前に使用した場合、匿名関数はuseで外部変数を参照していないことがわかり、関数内で使用するとエラーが発生するため、匿名関数の使用に注意する必要があります.
DB::connection('gvideo')->transaction(function () use ($user_id, $video_id, $action_id) {
$this->create(array('user_id' => $user_id, 'video_id' => $video_id, 'action_id' => $action_id));
if (UserTotalActionRecord::where('user_id', $user_id)->where('action_id', $action_id)->where('record_date', date("Y-m-d"))->first()) {
UserTotalActionRecord::where('user_id', $user_id)->where('action_id', $action_id)->where('record_date', date("Y-m-d"))->increment('action_times');
} else {
UserTotalActionRecord::create(array('user_id' => $user_id, 'action_id' => $action_id, 'record_date' => date("Y-m-d")));
}
});
以前に使用した場合、匿名関数はuseで外部変数を参照していないことがわかり、関数内で使用するとエラーが発生するため、匿名関数の使用に注意する必要があります.