json - 使用 whereJsonContains 并将参数与字符串数组进行比较

标签 json laravel eloquent

我已经在 Laracasts 中问过这个问题,但我还没有收到这个问题的答案。我看过这个 stackoverflow 帖子:Laravel Eloquent - Working with an array of JSON objects

简单地说,我想知道是否有一种方法可以让我使用:

->whereJsonContains('column', ['starts_at' => '2018-11-24 08:00:00'])

但我不想只比较一个值,而是将其与一组值进行比较,即:

$dates = ['2018-11-24 08:00:00', '2020-19-01 08:00:00'];

->whereJsonContains('column', ['starts_at' => $dates])

我完全意识到这不起作用,因为 whereJsonContains 只支持比较一个值而不是一个数组,所以我想我需要将其与 whereIn 方法结合起来。但是,我无法实现这一点。

任何帮助将不胜感激。非常感谢!

最佳答案

使用多个orWhereJsonContains()约束:

$query->where(function ($query) use ($dates) {
   foreach ($dates as $date) {
       $query->orWhereJsonContains('column', ['starts_at' => $date]);
   }
});

关于json - 使用 whereJsonContains 并将参数与字符串数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61390384/

相关文章:

mysql - Laravel 从具有多对多关系的两个表中获取数据

php - 使用 laravel 预加载选择特定列不起作用

mysql - Eloquent 分组依据和计数

javascript - 在 LocalStorage 中存储用户定义的 JavaScript 对象并将它们作为用户定义的对象类型检索

java - GSON - 1 个 parent ,多个 child

java - Spring @ResponseBody 注释是如何工作的?

php - YouTube Vid Attached - 在 Laravel 中删除 'posts' 表中的类别后,如何从 'categories' 表中删除关联的 Category_id?

json - 解析对象可变的 JSON

php - 仅 Mysql 原始计数

laravel - 使用 eloquent 或查询构建器连接表时选择带有星号的所有列