首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel雄辩的深度计数与关系

Laravel雄辩的深度计数与关系
EN

Stack Overflow用户
提问于 2017-01-10 09:29:05
回答 1查看 569关注 0票数 1

我想从深表中获取计数,关系是A->B->C->D,我想要D的总计数。

例如:

答:3个老板

B: 5位经理

C: 8人力资源

D: 25名员工

想象一下,每个老板都有经理,每个经理都有人力资源,每个人力资源也都有员工。

我怎样才能用Laravel来计算每个老板的员工总数。(例如,first boss最终有7名员工。)我应该写像joins这样的硬sql代码,还是可以用eloquent来处理?

顺便说一下,我的表格:

A: id,姓名

B: id,名称

A和B有数据透视表。

C: id,名称

B和C有数据透视表

D: id,名称

C和D有数据透视表

到目前为止,我尝试过:

代码语言:javascript
复制
$a = Boss::with("a.b.c.d")->where("id", 10)->first();
dd($a->b->c->d->count());

它只给了我d的计数,但我想要所有的a。

EN

回答 1

Stack Overflow用户

发布于 2018-08-03 09:58:39

这种情况下没有本机关系。

我创建了一个无限级别的HasManyThrough关系:Repository on GitHub

安装完成后,您可以这样使用它:

代码语言:javascript
复制
class A extends Model {
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

    public function d() {
        return $this->hasManyDeep(D::class, ['a_b', B::class, 'b_c', C::class, 'c_d']);
    }
}

$count = A::find($id)->d()->count();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41559781

复制
相关文章

相似问题

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