我有两个表Posts和Categories,我正试图用手风琴来显示它们。每个类别中的类别和帖子。我可以使用Category::with('posts'(来完成。
问题(我需要帮助的地方(是当我试图过滤帖子时。我有这个代码:
$data = Category::with('posts')->whereHas('posts.creator', function($query) use ($filteruser) {
$query->where('id',=, $filteruser);
});
问题是:
- 我希望所有类别仍然返回显示,即使没有返回帖子(在过滤器之后(。我上面的代码不能做到这一点,我想不出该怎么做
- 如果类别1有一个帖子与过滤器匹配,那么它也将返回同一类别中的所有其他帖子。我只想显示与筛选器匹配的帖子
这些可能吗?
假设posts有一列user_id
,它将它与创建者记录相关联。
尝试
$data = Category::with(['posts' => function($query) use ($filteruser) {
$query->with('creator')->where('user_id', $filteruser);
}])
->get();