2017-01-20 5 views
-1

ララヴェルでは、取引になると2つのアプローチがあるように見えますが、これは異なるもので最も一般的なアプローチですか?ララベル取引 - 2種類

return $this->model->getConnection()->transaction(function() use ($self, $request) { 

}); 

及びその他のアプローチ:

DB::transaction(function() { 

}); 
+2

これはまったく同じです – AlexM

答えて

2

実際laravelトランザクションは、以下の2つの方法

第一の方法で行うことができます。それはトランザクションを処理し、自己

それをロールバックされます:あなたの要件

try { 

    DB::beginTransaction(); 
    //Db trnscations 
} catch (\Exception $e) { 
    DB::rollBack() 
} 

第2の方法でハンドルトランザクションとロールバック

DB::transaction(function() { 

}); 
0

あなたは\Illuminate\Database\Connectionオブジェクトにtransaction()メソッドを呼び出しているので、それは、全く同じです。これらは、DBファサードまたはモデルクラスを介してConnectionオブジェクトにアクセスする方法とはまったく異なります。