我已经在 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/