Laravel JSON_CONTAINS запрос с динамическим c индексом массива - PullRequest
0 голосов
/ 28 мая 2020

Laravel версия 6.18.15

Я пытаюсь запросить поле JSON, содержащее массив значений. Например, в таблице «Расписание» у меня есть такая запись со столбцом «время»:

[
  [
    {
      "end_time": "11:30 PM",
      "start_time": "06:27 PM"
    },
    {
      "end_time": null,
      "start_time": null
    }
  ],
  [
    {
      "end_time": "11:56 PM",
      "start_time": "6:27 PM"
    },
    {
      "end_time": null,
      "start_time": null
    }
  ],
  [
    {
      "end_time": "9:31 PM",
      "start_time": "6:31 PM"
    },
    {
      "end_time": "9:31 PM",
      "start_time": "6:31 PM"
    }
  ],
  [
    {
      "end_time": "06:00 PM",
      "start_time": "10:50 AM"
    },
    {
      "end_time": null,
      "start_time": null
    }
  ],
  [
    {
      "end_time": "11:00 AM",
      "start_time": "06:00 PM"
    },
    {
      "end_time": null,
      "start_time": null
    }
  ],
  [
    {
      "end_time": null,
      "start_time": null
    },
    {
      "end_time": null,
      "start_time": null
    }
  ],
  [
    {
      "end_time": null,
      "start_time": null
    },
    {
      "end_time": null,
      "start_time": null
    }
  ]
]

Я хочу сделать запрос по индексу случайного массива. Я пробовал использовать приведенный ниже пример, но не повезло

Timetable::whereJsonContains('time->[0]->start_time', '06:27 PM')->get(); // 0 is array index

Timetable::whereRaw('JSON_CONTAINS(time->"$[0].start_time", "06:27 PM")')->get()

на самом деле я хочу запустить запрос и проверить до 5 минут текущего времени. Пример текущего времени 06:27 PM до 5 минут. Я хочу проверить такой запрос

Timetable::whereJsonContains('time->[0]->start_time', '>=', Carbon::now()->subMinutes(5))->get();

Любая помощь буду признателен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...