Laravel 5.8で、1:nでリレーションしているテーブルのレコード保存方法に困っています。
実際のコードをやや簡略化して記載します。
PHP
1public function update(StoreUser $request) 2 { 3 $user = User::where('id', $request->id)->first(); 4 DB::beginTransaction(); 5 try { 6 $user->fill($request->all())->save(); 7 foreach ($request->user_role as $key => $val) { 8 $user->user_roles()->create($val); 9 } 10 DB::commit(); 11 return response(null, 200); 12 } catch(\Exception $e) { 13 DB::rollback(); 14 return response($e->getMessage(), 400); 15 } 16 }
このようにすると、親テーブルのレコード保存まではうまくいくのですが、「$user->user_roles()->create($val)」の部分で、create does not existというエラーが吐き出されます。
createという関数はないということですが、ほかに登録の方法があるのでしょうか?
バージョン違いですが、こちらのサイトを参考にしました。
https://nextat.co.jp/staff/archives/200
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/05 05:47