いままで生のPHPは触っていましたが、Laravelにて新規開発をすることになりました。
Laravel5.5.43 です
表題にてTransactionの貼り方を教えていただけますでしょうか
DB::beginTransaction()
DBファサードを使ってトランザクションを貼る場合は上記記述になりますが、
updateorCreateを使ってトランザクションを貼ってもロールバックが聞きません。
お手数ですが、ご教授いただけますでしょか。
私が試したのは
DB::beginTransaction(); Post::updateOrCreate( ['id' => '1'] ,['name' => 'テスト'] ); DB::rollback();
上記だとDBにて更新されてしまうため。クロージャーを使うように変更
DB::beginTransaction(function() { Post::updateOrCreate( ['id' => '1'] ,['name' => 'テスト'] ); });
上記だと新規データも入らなくなりました。
その他
DB::connection('post')->beginTransaction();
を試しましたが、rollbackができませんでした。
ググって色々調べて見ましたが、私のコードの何が間違っているのかさえわからない状態になってしまったので、
ご教授いただけると嬉しいです。
お手数ですが、宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー