Laravel5.8でtransactionでなぜかロールバックされてしまう
いつもお世話になっております。
Laravel5.8/php7.3 にて開発をしております。
複数テーブルのinsertの処理があったので\DB::transaction
を使ってトランザクションの処理を行っております。
ローカル環境では、なんの問題もなく複数テーブルの登録が出来たのですが、本番環境にアップするとなぜか登録がされない状況です。
function __invoke() {
$uesr = $this->store();
var_dump($user); // <- 登録した内容が取得出来ているし、新規登録されたIDも発番されている
}
function store() {
return \DB::transaction(function () use () {
$data = ['email'=>'test@mail.com', name'=>'test'];
$user = new User;
$user->fill($data)->save();
$post = Post::create(['user_id'=>$user->id]);
return $user;
});
}
上記のように、transactionの処理が完了し、var_dumpでは新規に発番されたIDの取得は出来ております。
ただ、データベースには登録されておらず、ロールバックされてしまっているような動きをしております。
- トランザクションの処理をやめれば、正常に登録される
- トランザクション内でエラー(Exception)発生時にはvar_dumpまでは表示されないこと
などは、確認しているのですが、他に確認する点、修正すべき点等がございましたら、ご教授頂けますと幸いでございます。
何卒、よろしくお願いいたします。