【问题标题】:How to format a date in Laravel using ::lists如何在 Laravel 中使用 ::lists 格式化日期
【发布时间】:2015-12-05 13:39:32
【问题描述】:

我在 Laravel 中编写一个功能,用户可以使用选择框来选择某个日期。按照标准,这些日期以 y-m-d 的形式保存在我的表中。

我已成功使用 Eloquent 解决方案将日期格式化为 dd/mm/yyyy,并将其添加到名为 Dataslot 的 Eloquent 模型中:

受保护的 $dates = ['maand'];

之后我可以使用以下内容来格式化日期。

     $d = Dataslot::find(1);
     $dformat = $d->maand->format('d-m-Y');

为了将数据槽的 ID 和日期传递给我的选择框,我选择使用列表方法。

$dataslots = Dataslot::lists("maand","id");

这会返回一个数组。我不能像在第一个示例中的对象上那样在这个数组上使用 format 方法。

如何将一组格式化的日期(以 ID 作为键)发送到我的视图?

【问题讨论】:

    标签: php arrays date laravel-5.1


    【解决方案1】:

    未经测试(我现在在移动设备上)但这应该可以;

    Carbon::setToStringFormat('d-m-Y');
    $dataslots = Dataslot::lists('maand', 'id');
    

    您可以使用以下命令将 Carbon 改回来:

    Carbon::resetToStringFormat();
    

    【讨论】:

      【解决方案2】:

      这成功了:

      $dataslots = Dataslot::all();
      
      foreach ($dataslots as $o) {
          $flatArray[$o->id] = $o->maand->format('d-m-Y'); 
      }
      

      【讨论】:

        【解决方案3】:

        这样可以吗?

        $dataslots = Dataslots::all()->map(function($dataslot) {
            return [$dataslot->id => $dataslot->maand->format('d-m-Y')];
        });
        

        【讨论】:

        • 日期格式正确。数据槽的ID也添加到我的选择框的值中。我现在唯一的问题是自动添加了一个选项组标签,其中包含数组的键。
        • @LucasPoignon - 这听起来像是视图的问题。在问题中添加详细信息,或创建新问题。或者,如果解决方案是您所需要的,请接受它:)
        • 好的,如果需要,我会进一步研究并发布一个新问题。非常感谢!
        猜你喜欢
        • 2021-08-09
        • 2016-02-28
        • 2018-02-16
        • 1970-01-01
        • 1970-01-01
        • 2018-12-14
        • 1970-01-01
        • 2021-09-23
        • 1970-01-01
        相关资源
        最近更新 更多