Я просматриваю коллекцию Laravel, отсортированную по Create_at, чтобы создать временную шкалу. Датой начала для каждого элемента является create_at, а конечной датой — созданный_at следующего элемента. Если это последний элемент, событие длится всего 30 дней.
Мой текущий код:
Код: Выделить всё
@foreach ($statushistory->where('itemid', $timelineitemid) as $hist)
[ '{{$hist->newstatus}}', new Date({{$hist->created_at->format('Y')}}, {{$hist->created_at->format('n')-1}}, {{$hist->created_at->format('j')}}), new Date({{$hist->created_at->format('Y')}}, {{$hist->created_at->format('n')-1}}, {{$hist->created_at->format('j')}}) ],
@endforeach
Как вы можете видеть здесь, дата окончания совпадает с датой начала, но мне нужно, чтобы она была датой начала следующего элемента. Я думал, что для коллекций будет такой помощник, как Last(), который я мог бы просто вызвать next() или что-то еще. Поскольку цифрового ключа нет, я не могу просто добавить его и получить. Элементы сортируются по дате, и единственным полем типа идентификатора является поле из базы данных, представляющее собой случайный идентификатор, например 1434 или 1356.
Любые идеи о том, как получить start_date следующего элемента и проверить, находимся ли мы на последнем элементе? Я посмотрел на следующую функцию PHP, но не думаю, что она делает то, что мне нужно.
Большое спасибо
Подробнее здесь:
https://stackoverflow.com/questions/351 ... collection