我想从深表中获取计数,关系是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有数据透视表
到目前为止,我尝试过:
$a = Boss::with("a.b.c.d")->where("id", 10)->first();
dd($a->b->c->d->count());它只给了我d的计数,但我想要所有的a。
发布于 2018-08-03 09:58:39
这种情况下没有本机关系。
我创建了一个无限级别的HasManyThrough关系:Repository on GitHub
安装完成后,您可以这样使用它:
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();https://stackoverflow.com/questions/41559781
复制相似问题