我有两张桌子:建筑物:
公寓:
我还有两个模特:
建筑模型
class Building extends Eloquent{
protected $table = 'buildings';
public function apartments()
{
return $this->hasMany('Apartment');
}
}公寓模式
class Apartment extends Eloquent{
protected $table = 'apartments';
public function building()
{
return $this->belongsTo('Building');
}
}因此,现在在我的控制器中,我试图检索所有的公寓,我希望它加入到建筑物模型中,这样我就可以检索每个公寓所在的建筑的名称。
Array('0' =>
array('id' => 1,
'building_id' => 1,
'unit_number'=>234,
'other_data'=>'other_stuff',
'name'=>'Building1'),
'1' =>
array('id' => 2,
'building_id' => 2,
'unit_number'=>567,
'other_data'=>'more_stuff',
'name'=>'Building4'))我相信我可以独立地做到这一点,但我如何将它们合并在一起呢?
$buildings = Building::all();
$apartments= Apartment::all();这就是我在控制器里尝试过的
$building = new Building();
$buildings = $building->all();
$apts = $building->find(1)->apartments();
dd($apts);我还在控制器中尝试过许多其他的变体,但都没有成功。我是否走上了正确的轨道,以我想要的方式收回数据?
发布于 2015-01-19 20:38:07
与单独查询模型不同,您只需查询一个模型并急切地加载关系,因此它们都包含这些数据:
$apartments = Apartment::with('building')->get();
foreach($apartments as $apartment){
echo 'Building name: '.$apartment->building->name;
}为了获得某一特定建筑物的公寓:
$apartments = Building::find(1)->apartments;(请注意,我不是调用函数apartments(),而是访问属性apartments。然后雄辩者将为你获取这一关系的结果)
https://stackoverflow.com/questions/28032956
复制相似问题