Использование whereJsonContains и сравнение параметров с массивом строк - PullRequest
1 голос
/ 23 апреля 2020

Я спрашивал об этом в Laracasts, но пока не получил ответа на этот вопрос. Я видел это сообщение от stackoverflow: Laravel Eloquent - Работа с массивом JSON объектов

Проще говоря, я хотел бы знать, есть ли способ для меня использовать :

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

, но вместо только одно значение, я бы хотел сравнить его с массивом значений, например:

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

-> whereJsonContains (' column ', [' Start_at '=> $ date])

Я полностью осознаю, что это не работать, потому что whereJsonContains поддерживает сравнение только одного значения вместо массива, поэтому я решил, что мне нужно объединить это с методом whereIn. Однако я не могу выполнить sh этого.

Любая помощь будет полностью оценена. Большое спасибо!

1 Ответ

1 голос
/ 23 апреля 2020

Использовать несколько orWhereJsonContains() ограничений:

$query->where(function ($query) use ($dates) {
   foreach ($dates as $date) {
       $query->orWhereJsonContains('column', ['starts_at' => $date]);
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...