【问题标题】:Seeding a MySQL table using Laravel and Carbon for next x number of days在接下来的 x 天中使用 Laravel 和 Carbon 播种 MySQL 表
【发布时间】:2019-06-16 03:41:04
【问题描述】:

我正在构建一个功能来构建未来 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
...

【问题讨论】:

    标签: laravel php-carbon laravel-seeding


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 2020-06-03
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2018-02-03
      • 2016-09-06
      • 2014-06-04
      • 1970-01-01
      相关资源
      最近更新 更多