gpt4 book ai didi

php - Laravel - 通过检查数据库中数组中是否存在值来过滤集合

转载 作者:可可西里 更新时间:2023-11-01 08:38:47 25 4
gpt4 key购买 nike

我想根据存储在表中的数组中是否存在单个值来返回帖子集合。

在我的帖子表中,我有常规的列名称,如“title”、“body”和“slug”。我使用同一个表管理多个站点,因此我有一个额外的列名称“site_ids”。当用户创建帖子时,他们选择他们希望发布帖子的网站,并将网站 ID 存储为数组(例如 [1,2])

-----------------------------------------------
| Title | Site_ids | Slug |
-----------------------------------------------
| Test Title |[1,2,3] |test-title |
-----------------------------------------------
| Another Title |[1,6] |another-title |
-----------------------------------------------

现在我正在创建一个 API 来返回所有 site_id 为 1 的帖子。如何实现?这是我的 PostController 中的当前代码

API 路径

Route::get('/{site_id}/posts','PostController@index')->name('Show Posts');

代码:

  public function index($site_id)
{
// Return all posts by id
$posts = Post::whereIn('sites', $site_id)->get();
return new PostCollection($posts);
}

我收到此错误消息

Invalid argument supplied for foreach()

我在这里做错了什么?

最佳答案

你可以尝试 whereRaw('JSON_CONTAINS(meta, "1")') 之类的东西。检查 command在 MySQL 中。另外,如果你在 laravel 的 5.7 中运行,你可能需要检查 this

关于php - Laravel - 通过检查数据库中数组中是否存在值来过滤集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com