Return 与客户的约会 DB::Transaction Closure()
Return Date To Client From Within DB::Transaction Closure()
我正在我的数据库事务闭包中执行多个数据库保存:
DB::transaction(function() {
...
});
但是我现在想做的是当交易失败而不是抛出异常我想 return 自定义 JSON 对象直接发送给客户端,如果交易成功我想做同样的事情。
这是我的对象:
return [
'code' => '',
'message' => '',
'data' => []
];
我如何 return 从闭包中向客户发送上述内容?
您可以使用 DB::beginTransaction、DB::commit 和 DB::rollback 方法来代替 DB::transaction 闭包,以便在代码中获得更多控制,您可以包装您的数据库操作,例如这个:
DB::beginTransaction();
try {
DB::insert(...);
DB::insert(...);
DB::insert(...);
//If everything is ok we commit
DB::commit();
return response()->json(["status" => "success"])
} catch (Exception $e) {
//something goes wrong, we rollback
DB::rollback();
return response()->json(["error" => "Some error"]);
}
中进行更多研究
我正在我的数据库事务闭包中执行多个数据库保存:
DB::transaction(function() {
...
});
但是我现在想做的是当交易失败而不是抛出异常我想 return 自定义 JSON 对象直接发送给客户端,如果交易成功我想做同样的事情。
这是我的对象:
return [
'code' => '',
'message' => '',
'data' => []
];
我如何 return 从闭包中向客户发送上述内容?
您可以使用 DB::beginTransaction、DB::commit 和 DB::rollback 方法来代替 DB::transaction 闭包,以便在代码中获得更多控制,您可以包装您的数据库操作,例如这个:
DB::beginTransaction();
try {
DB::insert(...);
DB::insert(...);
DB::insert(...);
//If everything is ok we commit
DB::commit();
return response()->json(["status" => "success"])
} catch (Exception $e) {
//something goes wrong, we rollback
DB::rollback();
return response()->json(["error" => "Some error"]);
}
中进行更多研究