質問: Post::create(['user_id'=>$user->id]); return $user; }); } ``` 上記のように、transactionの処理が完了し、var_dumpでは新規に発番されたIDの取得は出来ております。 ただ、データベースには登録されておらず、ロールバックされてしまっているような動きをしております。 * トランザクションの処理をやめれば、正常に登録される * トランザクション内でエラー(Exception)発生時にはvar_dumpまでは表示されないこと などは、確認しているのですが、他に確認する点、修正すべき点等がございましたら、ご教授頂けますと幸いでございます。 何卒、よろしくお願いいたします。
回答: $user_idは$user->idではないでしょうか? 蛇足ですが、transactionはtry/catchで囲むとロールバックした際に例外をキャッチできるので、原因をつかみやすいです。 あと、userとpostがリレーションしている場合は、「関連したモデルの挿入」を使ったほうが、idを意識しなくてすみます。 ``` try { $user = \DB::transaction(function () { // 保存 $user = User::create(['email'=>'test@mail.com', 'name'=>'test']); $post = $user->posts()->create(['comment' => 'コメント']); return $user; )}; } catch (\Exception $e) { report($e); // ロールバック時の処理 } ``` ※ コードはタイポなどあるかもしれません。