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

Ign*_*nis 2 json laravel eloquent

我已经在 Laracasts 中问过这个问题,但我还没有收到这个问题的答案。我看过这个 stackoverflow 帖子:Laravel Eloquent - 使用 JSON 对象数组

简而言之,我想知道是否有一种方法可供我使用:

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

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

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

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

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

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

Jon*_*eir 5

使用多个orWhereJsonContains()约束:

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