我有以下结构:
“建筑物”有许多“街区”,其中有许多“单元”,其中有许多“租户”
我需要获得居住在建筑物中的所有租户的列表。
Laravel 提供了 hasMany 和 hasManyThrough 命令,可以帮助您获取具有直接关系或通过单个中间表相关的模型集合,但是如果您想获取两级、三级或任何深度的相关元素怎么办?
使用 Laravel/Eloquent 实现这一目标的正确方法是什么?
Jon*_*eir 11
这种情况下没有本地关系。
我创建了一个HasManyThrough无限级别的关系:GitHub 上的存储库
安装后,您可以像这样使用它:
class Building extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function tenants() {
return $this->hasManyDeep(Tenant::class, [Block::class, Unit::class]);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我认为你想做的是嵌套预加载。就像访问关系一样:
例如,如果您的帖子有评论并且评论有回复,并且您希望所有帖子都有评论和评论回复:
$posts = Post::with('comment.reply')->get();
Run Code Online (Sandbox Code Playgroud)
链接: https: //laravel.com/docs/5.3/eloquent-relationships#eager-loading
| 归档时间: |
|
| 查看次数: |
6143 次 |
| 最近记录: |