Заполнение таблицы MySQL с использованием Laravel и Carbon на следующие x дней - PullRequest
0 голосов
/ 15 июня 2019

Я создаю функцию для создания плейлиста на следующие 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
...

1 Ответ

0 голосов
/ 15 июня 2019

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

    $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);
...