使用 Laravel 获取特定类别的所有帖子记录

Posted

技术标签:

【中文标题】使用 Laravel 获取特定类别的所有帖子记录【英文标题】:Get All the Posts Records For Specific Category Using Laravel 【发布时间】:2020-11-04 14:38:56 【问题描述】:

我有一张名为Posts 的表。该表包含一些字段和一个名为Category_id 的列,它是外键和数据类型。全部存储为JSON。每个Posts 表也有多个categories。例如,ANews Post'Breaking News''State News' 等。

我将categories ID 存储为JSONCategory_ID 列中。现在,我想获取属于某个特定类别的所有帖子。

示例图片:

从上图中,我想获取category_id = 3的所有Posts

【问题讨论】:

【参考方案1】:

您可以在类别模型中执行此操作

public function posts()
   return Post::whereJsonContains('category_id', $this->attributes['id'])->with('category')->get();

在控制器中

$category = Category::find(1);
$category->posts();

但是,这种结构的最好方法是拥有一个 laravel many to many relation

【讨论】:

【参考方案2】:

您可以使用whereJsonContains

例如:

Post::whereJsonContains('category_id', '3')->get();

【讨论】:

以上是关于使用 Laravel 获取特定类别的所有帖子记录的主要内容,如果未能解决你的问题,请参考以下文章

从所有记录中获取所有相关的多对多,而不是从每个记录 laravel

使用 Laravel 限制多态多对多关系中的相关记录

从 WordPress 中的特定类别获取置顶帖子

Laravel 如何从“文章”表中获取没有类别的所有记录?

Wordpress 类别模板显示来自所有类别的帖子,而不是特定类别的帖子

如何在laravel中按类别过滤帖子?