Eloquentで関連付けられたテーブルの情報を取得する
野菜テーブルと値段テーブルが別れていたとして、このテーブルをEloquentで結合したい。
yasai
id | name |
---|---|
1 | トマト |
2 | きゅうり |
3 | 大根 |
nedan
id | yen |
---|---|
1 | 150 |
2 | 60 |
3 | 200 |
以下の3ステップで結合ができる。
1:Eloquentで関連付ける
class Yasai extends Eloquent {
public $timestamps = false;
public function nedan() {
return $this->belongsTo('Nedan');
}
}
2:Controllerで取得する
$yasais = Yasai::with(['nedan'])->get(); return View::make('yasai.index', ['yasais' => $yasais]);
3:Viewで展開する
@foreach($yasais as $yasai) <li>{{ $yasai->name }} {{ $yasai['nedan']->yen }}</li> @endforeach
おまけ:Eloquentで関連付けられたテーブルにwhere句を指定する方法
$lists = Yasai::whereHas('nedan', function($q) { $q->where('yen', '>', 100); })->get();