laravel - 如何通过 laravel 中的第一级 hasMANy 获取第二级 hasMany 关系的计数
问题描述
building
我与hasManyfloors
和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');
}
我想要的只是根据建筑物计算单元数。
解决方案
将此功能放入建筑模型中:
public function units()
{
return $this->hasManyThrough('App\Models\Unit', 'App\Models\Floor');
}
然后你可以很容易地做到:
$building->units()->count();
推荐阅读
- java - 在服务中实现 onActivityResult()
- swift - Swift Mediator Pattern - 通用协议的集合
- java - 为什么我在合并调试资源时遇到错误?
- sql - where 子句中的 RTRIM
- wordpress - 帖子中的相同类别和轻松的数字下载
- amazon-web-services - 如何从 Airflow 向 EMR 集群提交 Spark 作业?
- c - 通过参数类型抽象去除 C 中的代码冗余
- java - 从本地应用插件
- java - 如何在 JIRA 中使用 HttpClientBuilder?
- python - 从bash将数组传递给python参数