如何按当前类别显示相关帖子?

时间:2019-07-03 11:44:08

标签: php laravel

在Laravel中,帖子和类别具有多对多关系。这意味着一个帖子可以有多个类别。在这种情况下,我想按当前类别显示相关帖子。但是,我通过在会话中存储当前类别ID来实现这一点。但是,当帖子具有多个类别并且所有帖子均在从其相应类别导航的不同选项卡中打开时,就会出现问题。如果我刷新它们,相关的帖子将更改为会话中存储的最新类别。

请提出解决此问题的方法。 谢谢大家。 :)

$category[] = $request->session()->get('current_category_id');
$relatedPosts = Post::whereHas('category', function($q) use ($category) {
    $q->whereIn('category_id',$category);
})->whereNotIn('id', $currentPost->id)->take(5)->get();

预期:         刷新后,页面应显示导航到的类别的相关帖子。

实际:        刷新后,页面将显示从中导航的最新类别的相关帖子。

1 个答案:

答案 0 :(得分:0)

对于这种事情,我通常会添加“标签”和带有关键字的标签帖子,然后根据匹配标签的最大数量显示相关帖子(此处将需要您自己的一些逻辑)

我过去使用的库是: https://github.com/spatie/laravel-tags

依赖会话很困难,尤其是因为人们可以直接从搜索引擎进入您的文章页面,因此没有会​​话历史记录