Заполнение таблицы MySQL с использованием Laravel и Carbon в течение следующих x дней

Я разрабатываю функцию для создания плейлиста на следующие 5 лет. В моей таблице дата MySQL является моим идентификатором и имеет отношение к другой таблице, в которой перечислены все подкасты.

Моя проблема заключается в том, что я не нахожу достаточных указаний относительно заполнения таблицы с сегодняшнего дня до следующих 5 лет. На самом деле это означает возможность запускать семя Laravel, которое генерирует запрос на вставку каждый день в течение следующих 5 лет.

В настоящее время я использую Laravel 5.8 и использую Carbon. Я мог бы просто использовать функцию foreach для генерации этих данных, однако я не думаю, что это элегантно, поэтому мне интересно, могу ли я использовать лучший подход для генерации дат на следующие 5 лет? Код ниже может работать в циклической функции, то есть создать сегодня, а затем добавить день, чтобы повторять это в течение следующих 5 лет, но опять же, это не похоже на хороший подход, или я ошибаюсь?

$mutable = Carbon::now();
$immutable = CarbonImmutable::now();
$modifiedMutable = $mutable->add(1, 'day');

В идеале он должен возвращать даты, например

id: 1, date: 2019-06-05
id: 2, date: 2019-06-06
id: 3, date: 2019-06-07
...

person JJ The Second    schedule 15.06.2019    source источник


Ответы (1)


Наконец, сделал это с помощью цикла, кажется, нет другого элегантного способа сделать это, поделившись ответом для тех, кто может подумать о том, чтобы сделать то, чего я пытался достичь.

    $startDate = new Carbon('2019-06-15');
    $endDate = new Carbon('2025-06-15');
    $all_dates = array();
    while ($startDate->lte($endDate)){
      $all_dates[] = $startDate->toDateString();
      $startDate->addDay();
    }
    dd($all_dates);
person JJ The Second    schedule 15.06.2019