Laravel从交易中返回价值

时间:2017-11-05 17:47:04

标签: php laravel laravel-5 transactions

我正在使用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;
    } // ...
}}

2 个答案:

答案 0 :(得分:3)

改为使用DB::beginTransaction()DB::commit()

DB::beginTransaction();
try {
    $result = Persona::create($request->all());
    DB::commit();
} catch (Exception $e) {
    DB::rollBack();
}

Laravel 5.5: Database Transactions

答案 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;
    } // ...
}}