如何使用::lists在Laravel中设置日期格式


How to format a date in Laravel using ::lists

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

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

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

之后,我可以使用以下格式来设置日期。

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

为了将数据槽的ID和日期传递到我的选择框中,我选择使用lists方法。

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

这将返回一个数组。我不能像在第一个例子中那样在这个数组上使用format方法。

如何将ID作为关键字的格式化日期数组发送到我的视图?

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

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

你可以用将碳换回来

Carbon::resetToStringFormat();

这就成功了:

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

这样行吗?

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