首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5--3种模型间雄辩的关系

Laravel 5--3种模型间雄辩的关系
EN

Stack Overflow用户
提问于 2015-11-05 19:12:58
回答 2查看 541关注 0票数 1

我有三个模特:

  1. 父亲
  2. 儿子
  3. GrandSon

这种关系很明显,一个父亲可以有很多儿子,他的儿子可以有很多孙子。

我想要实现的是找出一个父亲有多少个孙子有

我知道要找出他有多少儿子,我必须用这个:

代码语言:javascript
复制
Father::find(1)->sons->count();

但我怎么知道他有多少孙子?

EN

回答 2

Stack Overflow用户

发布于 2015-11-05 19:27:42

如果您不想遍历so,可以在父模型上定义一个hasManyThrough关系,如下所示:

代码语言:javascript
复制
class Father
{
    public function grandsons()
    {
        return $this->hasManyThrough('GrandSon', 'Son');
    }
}

查看此处以供参考:http://laravel.com/docs/5.1/eloquent-relationships#has-many-through

票数 1
EN

Stack Overflow用户

发布于 2015-11-06 02:04:33

除了@jsphpl的答案之外,您还可以继续链接,但是使用方法而不是属性调用。

代码语言:javascript
复制
Father::find(1)->sons()->grandsons()->grandgrandsons()->count();

这是因为sons()返回一个关系,而不是一个集合,因此grandsons()将继续从该sons()查询构建查询。同样的情况也适用于grandgrandsons()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33552888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档