I have this collection from a database where I have a column called "event_date".
What I want is just to get only the day names from that column that comes in a collection.
I know you can use Carbon to get the name days through, for example, a method called ->format()
, however I get an error saying that this method does not exist.
My code so far is as follows:
$collection = MyModel::all();
Inside there is the "event_date" property or column. From that, I want to get the names of the days to put them into an array or collection and finally count those days frequencies.
In order to achieve this I have tried the following:
I tried the ->pluck()
method as follows:
$filtered = collect([
'myDates'=>$collection->pluck('event_date'),
]);
And the dd($filtered)
looks like as follows:
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"
}
...
I tried to get the day names as follows:
$Daynames = $filtered->each(function($item,$key){
return $item->myDates->format('l');
});
But I got the following error:
Undefined property: Illuminate\Support\Collection::$myDates
Any ideas to get only the daynames into an array or collection? Is there another way to do this?
$Daynames
empty? If I echo out each$date->format('l')
I can see the day names. But the array appears empty. I have trieduse($Daynames)
andreturn $Daynames;
and it does not work either. – Greerson