【发布时间】:2018-11-07 07:05:45
【问题描述】:
大家好,我正在使用 Laravel 5.6 我在数据库中有三个表 posts、cmets 和 reply 以及三个模型 Post 、 Comment 、 Reply
关系如下:一个帖子有很多cmet,一个评论有很多回复。我创建了一条路线,当被击中时会返回一些数据;但是,我希望这些数据以特定方式阅读此示例:
假设我的数据库中有 6 个帖子,每个帖子有 6 个 cmets,每个评论有 6 个回复我只想返回前 3 个帖子以及每个帖子的前 3 个 cmets,以及每个评论的前 3 个回复
//this is a function inside a controller
//and for sure I have make sure to make use of the models namespaces
public function test(){
$posts = Post::with(['comments' => function($data){
return $data->take(3);
},
'comments.replies' => function($data){
return $data->take(3);
}])->paginate(3);
//returning the posts
return $posts
}
这种方法有效,它返回前 3 个帖子,它只返回第一个帖子的前 3 个 cmets 和前 3 个回复,但对于其他帖子,我只得到一个 cmets 的空键,因此没有回复
希望你能得到我的问题,请帮忙 对不起大问题 提前致谢。
【问题讨论】:
标签: laravel eloquent query-builder laravel-query-builder