【发布时间】:2020-01-27 15:24:53
【问题描述】:
我的关系为 building hasMany floors 和 floor hasMany units。
我想知道每栋建筑的单位数。
我可以很容易地获得楼层数:
$building = Building::findOrFail($id);
$building->floors()->count();
但是,我无法获得单位数:
$building = Building::findOrFail($id);
$building->floors()->units()->count();
我的口才关系如下:
Building
--------
public function floors()
{
return $this->hasMany('App\Models\Floor');
}
Floor
--------
public function units()
{
return $this->hasMany('App\Models\Unit');
}
我想要的只是根据建筑物获取单元数。
【问题讨论】:
-
您可能需要在
Building和Units之间有一个hasManyThrough(),否则您需要遍历floors(),因为floors()->units()没有逻辑意义。$floor->units()将(单个Floor实例),但floors()->units(),作为Floor实例的Collection不允许直接访问units(),因为它不知道是哪一个。跨度>
标签: laravel