我有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实现这一目标的方式是什么?
答案 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');
}