前提・実現したいこと
以下のテーブル構成において、problemモデルを新規保存したい
php
1users 2 id - integer 3 name - string 4 5drills 6 id - integer 7 user_id - integer 8 name - string 9 10problems 11 id - integer 12 drill_id - integer 13 name - string
該当のソースコード
UserとDrillのモデルは以下の通り。
php
1class User extends Authenticatable 2{ 3 public function drills() 4 { 5 return $this->hasMany('App\Drill'); 6 } 7 public function drillProblem() 8 { 9 return $this->hasManyThrough('App\Problem', 'App\Drill'); 10 } 11}
php
1class Drill extends Model 2{ 3 public function problems() 4 { 5 return $this->hasMany('App\Problem'); 6 } 7}
以下のコードを書くと、それぞれコメントアウトしたエラーが発生してしまいます。
user、drillに紐付いたproblemを保存するにはどうしたら良いでしょうか。
php
1use App\Drill; 2use App\Problem; 3use Illuminate\Support\Facades\Auth; 4 5class DrillsController extends Controller 6{ 7 public function create(Request $request) 8 { 9 $drill = new Drill; 10 $problem = new Problem; 11 12 Auth::user()->drills()->save($drill->fill($request->all())); //保存可能 13 Auth::user()->drills()->problems()->save($drill->fill($request->all())); //Call to undefined method Illuminate\Database\Eloquent\Relations\HasMany::problems() 14 Auth::user()->drillProblem()->save($drill->fill($request->all())); //Call to undefined method Illuminate\Database\Eloquent\Relations\HasOneThrough::save() 15 } 16}
回答1件
あなたの回答
tips
プレビュー