2
私はLaravelを使用しています。私は雄弁な表現を使用してコーチのIDを持つチームを作成することに問題があります。私はユーザー(コーチになることができる基本ユーザー)を持っている、そして私は1つまたは2つのコーチを持つことができる最後のチームと1つだけのチームを持つことができるコーチを持っています。彼らのテーブル:Laravelからリクエスト(コーチ)へのアクセス
Users:
id | email | password | coach_id (null is default)
Coaches:
id | user_id | ... (other unnecessary coach info)
Teams:
id | coach_id | ... (other unnecessary team info)
私はTeamControllerの方法でチームを作成しようとした
(YouTubeのhttps://youtu.be/z-1bdYTNWm8?t=6m50s上laravelチュートリアル以下):
$team = new Team();
$team->team_name = $team_name;
$team->organization = $organization;
$team->address = $address;
$request->user()->coach()->team()->save($team);
私のユーザモデル:
public function coach(){
return $this->hasOne('App\Coach');
}
マイコーチモデル:
public function user(){
return $this->belongsTo('App\User');
}
public function team(){
return $this->hasOne('App\Team');
}
マイチームモデル:
public function coach(){
return $this->belongsToMany('App\Coach');
}
しかし、私はこのエラーを取得:
BadMethodCallException in Builder.php line 2450:
Call to undefined method Illuminate\Database\Query\Builder::team()
さて、それは仕事をしました!しかし、なぜそれがそのように機能するのか教えてください。 – Matis
更新された回答を確認してください。 –
もし私がこれより良いアクセスをしているのであれば、 'User'モデルで' team'という名前の関係を作成した方が良いでしょうか?あるいはこれを行うもっと良い方法がありますか? – Matis