我正在使用laravel 5中的交易,到目前为止,我已经使用参考参数& $得到了语句之外的任何方法的结果,但是我认为这是一个不好的做法,因为运算符“& “已经过时了。有没有其他方法可以获得var在事务范围之外的值?
这是一个代码示例:
public function post(Request $request, Persona $persona)
{
try {
DB::transaction(function () use ($request, &$result) {
$result = Persona::create($request->all());
// ... Moooore code omitted
});
// Do more thing with $result
$result;
} // ...
}}
答案 0 :(得分:3)
改为使用DB::beginTransaction()
和DB::commit()
:
DB::beginTransaction();
try {
$result = Persona::create($request->all());
DB::commit();
} catch (Exception $e) {
DB::rollBack();
}
答案 1 :(得分:-1)
这并不复杂,只需在交易中返回结果;)
public function post(Request $request, Persona $persona)
{
try {
$result = DB::transaction(function () use ($request) {
$result = Persona::create($request->all());
// ... Moooore code omitted
return $result;
});
// Do more thing with $result
$result;
} // ...
}}