使用 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 存储为JSON
在Category_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