我有一个数据库中的这个集合,我有一个名为“event_date”的列 .
我想要的只是获取集合中该列的日期名称 .
我知道你可以使用Carbon来获取名称的日期,例如,一个名为 ->format()
的方法,但是我得到一个错误,说这个方法不存在 .
我的代码到目前为止如下:
$collection = MyModel::all();
里面有“event_date”属性或列 . 从那时起,我想得到将它们放入数组或集合中的日期名称,并最终计算那些天数 .
为了实现这一目标,我尝试了以下方法:
我尝试了 ->pluck()
方法如下:
$filtered = collect([
'myDates'=>$collection->pluck('event_date'),
]);
dd($filtered)
如下所示:
Collection {#209 ▼
#items: array:1 [▼
"myDates" => Collection {#243 ▼
#items: array:30 [▼
0 => Carbon {#244 ▼
+"date": "2017-02-05 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
1 => Carbon {#218 ▼
+"date": "2017-01-15 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
2 => Carbon {#250 ▼
+"date": "2016-09-25 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
3 => Carbon {#249 ▼
+"date": "2016-05-22 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
...
我试着得到如下的日期名称:
$Daynames = $filtered->each(function($item,$key){
return $item->myDates->format('l');
});
但我收到以下错误:
未定义属性:Illuminate \ Support \ Collection :: $ myDates
有什么想法只将daynames放入数组或集合中?还有另一种方法吗?
3 回答
你在日期集合上调用 format() ,而你应该在 Carbon 对象上调用它 . 你需要另一个循环来遍历 myDates 集合中的所有日期并格式化它们,例如:
通过Carbon库我们可以很容易地得到它 .
输出为
Thursday
. 它在laravel中对我有用使用集合管道实现此目的的优雅方式: