我DB::beginTransaction()在Laravel中使用但它仅用于在main函数中完成的数据库更改,而不用于子函数.
主要功能代码:
try {
DB::beginTransaction();
$data = array(
'id' => Input::get('id'),
'task_title' => Input::get('task_title'),
);
DB::table('task')->insert($data);
$id = DB::getPdo()->lastInsertId();
// Add Actionees
if (!$this->addActionees(Input::get('actionees'), $id)) {
DB::rollback();
return Response::json(false);
}
DB::commit();
return Response::json(true);
} catch (Exception $ex) {
DB::rollback();
return Response::json($ex);
}
Run Code Online (Sandbox Code Playgroud)
子功能代码:
private function addActionees($actionees, $id, $status) {
try {
DB::table('task_assignee_user')->where('task_id', $id)->delete();
foreach ($actionees as $act) {
$actAdd = array(
'task_id' => $id,
'user_id' => $act->user_id,
);
DB::table('task_assignee')->insert($actAdd);
}
return True;
} catch (Exception $ex) {
return …Run Code Online (Sandbox Code Playgroud)