【问题标题】:Laravel return value from within transactionsLaravel 从交易中返回值
【发布时间】:2017-11-05 17:47:04
【问题描述】:

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

【问题讨论】:

    标签: php laravel laravel-5 transactions


    【解决方案1】:

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

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

    Laravel 5.5: Database Transactions

    【讨论】:

    【解决方案2】:

    没那么复杂,只需在你的事务中返回结果即可;)

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 2021-09-23
    • 2013-05-01
    • 1970-01-01
    相关资源
    最近更新 更多