いつもお世話になっております。
Laravelを初めて触ったので質問をさせてください。
Laravelには、Eloquentという機能が実装されており
Modelの中に書けば、自動的にリレーションされ
関連するデータを引っ張ってくる機能があることまで把握しました。
その機能で、リレーション先のデータを更にリレーションさせたいのですが
どのように記述をすればいいでしょうか?
php
1//試したコード 2User::find(1)->getOfficeData->getAddressData;
php
1class Office extends Model 2{ 3 public function getOfficeData() 4 { 5 return $this->hasMany('App\User'); 6 } 7} 8 9class Address extends Model 10{ 11 public function getAddressData() 12 { 13 return $this->belongsTo('App\Office'); 14 } 15} 16 17class User extends Model 18{ 19 // 20 protected $table = 'users'; 21 22 public function office() 23 { 24 return $this->hasOne('App\Office'); 25 } 26 27} 28
1.userテーブル
id | name |
---|---|
1 | 田中 |
2.officeテーブル
id | user_id |
---|---|
1 | 1 |
3.addressテーブル
id | office_id |
---|---|
1 | 1 |
上記のような構造をしているとき、
userのidからデータを
User::find(1)でuserテーブル内のid = 1の情報を取得出来ており
User::find(1)->getOfficeData ここまではJOINされたデータが取得出来ております。
更にもう一階層JOINするためにはどうすればいいでしょうか。
回答1件
あなたの回答
tips
プレビュー