Laravel:检测是否加载了嵌套关系

时间:2016-01-05 14:21:59

标签: php laravel laravel-5 eloquent laravel-5.1

在Laravel中,我们可以使用嵌套关系加载模型

User::with('posts.comments.likes')

但是在其他地方我们如何检测是否加载了嵌套关系?有方法吗?

Model :: relationLoaded()仅检测直接关系。

public function relationLoaded($key)
{
    return array_key_exists($key, $this->relations);
}

1 个答案:

答案 0 :(得分:1)

不可能获得嵌套关系的状态 - 至少除了遍历相关对象并为每个对象单独检查关系之外别无其他方式。

为什么它没有实现的正当理由可能是这样的事实:如果关系是X-to-many,就像在你的情况下用户可以有多个帖子一样,可以只为一些帖子急切地加载评论集合。