【发布时间】:2018-09-23 07:33:53
【问题描述】:
我有以下结构:
'buildings' 有很多'blocks' 里面有很多'units' 里面有很多 '租户'
我需要获取居住在建筑物中的所有租户的列表。
Laravel 提供了 hasMany 和 hasManyThrough 命令,可帮助您获取具有直接关系或通过单个中间表相关的模型集合,但如果您想获取两层、三层或任何深度的相关元素怎么办?
使用 Laravel/Eloquent 实现此目的的正确方法是什么?
【问题讨论】:
-
使用whereHas
-
或者只是使用一系列
JOINs。但是你尝试了什么? -
尝试阅读 Laravel 文档,然后在没有任何尝试提示的情况下随机接触。
-
@devk, whereHas 只会让你获得两层深度,在这个例子中将获得建筑物的单位。我认为没有办法链接 whereHas 语句。
-
@fubar,我尝试过的是ugly,我不希望回复基于此。我想知道实现这一目标的正确 laravel/雄辩方式是什么