查询集合中的关系值

时间:2017-10-16 14:33:57

标签: php laravel collections eloquent relationship

我有3个表,用户>帖子>评论。用户有很多帖子,帖子有很多评论。我试图只获得用户的评论。像这样:

float[] array = new float[] {1, 2, 3, 4, 5}
material.SetFloatArray("positions", array );
Vector4[] colors = new Vector4[] { new Vector4(), new Vector4(), new Vector4(), new Vector4(), new Vector4() };
material.SetVectorArray("colors", colors);
  • $user->posts->comments->where(...)->get() 会返回一组帖子
  • 因此,如果我尝试$user->posts,则会返回帖子评论的集合。

但是,根据上述方案($user->posts->first()->comments),它不起作用,因为帖子是一个集合

我认为运行for循环不是最佳方式,即使我相信它可以通过这种方式实现。

Laravel实现这一目标的方式是什么?

1 个答案:

答案 0 :(得分:4)

您可以使用Has Many Through,请参阅https://laravel.com/docs/5.5/eloquent-relationships#has-many-through

在您的用户模型中:

public function comments()
{
    return $this->hasManyThrough('App\Comment', 'App\Post');
}