Вот контроллер:
$tickets = Ticket::where('slot_id', $slot_id)->get();
$ar = [];
$slots = Slot::find($slot_id);
$i = 2;
do {
foreach (json_decode($tickets) as $ticket) {
if($ticket->num_ticket == $i) {
$ar[$i] = $ticket;
} else {
$ar[$i] = [];
}
}
$i++;
} while($i <= $slots->max_tickets);
return $ar;
А вот что я получаю:
{"2":[],"3":[],"4":[],"5":[],"6":{"id":3,"user_id":1,"slot_id":2,"num_ticket":6,"created_at":"2018-03-31 00:00:00","updated_at":"2018-03-31 00:00:00"},"7":[],"8":[],"9":[],"10":[]}
Цикл срабатывает правильно только на 3 объекте. Всего их три, в которых num_ticket раны 2, 5 и 6. Почему он срабатывает только на 6. Пробовал вместо $i подставлять в ручную 2 ил 5, тогда он в json ответе возвращает все 10 объектов пустыми.