我有三个模特:
这种关系很明显,一个父亲可以有很多儿子,他的儿子可以有很多孙子。
我想要实现的是找出一个父亲有多少个孙子有。
我知道要找出他有多少儿子,我必须用这个:
Father::find(1)->sons->count();但我怎么知道他有多少孙子?
发布于 2015-11-05 19:27:42
如果您不想遍历so,可以在父模型上定义一个hasManyThrough关系,如下所示:
class Father
{
public function grandsons()
{
return $this->hasManyThrough('GrandSon', 'Son');
}
}查看此处以供参考:http://laravel.com/docs/5.1/eloquent-relationships#has-many-through
发布于 2015-11-06 02:04:33
除了@jsphpl的答案之外,您还可以继续链接,但是使用方法而不是属性调用。
Father::find(1)->sons()->grandsons()->grandgrandsons()->count();这是因为sons()返回一个关系,而不是一个集合,因此grandsons()将继续从该sons()查询构建查询。同样的情况也适用于grandgrandsons()。
https://stackoverflow.com/questions/33552888
复制相似问题