Możesz to zrobić na trzy sposoby. Wszystkie te rozwiązania zależą od faktu, że atrybut date nie jest instancją Carbon, co ma miejsce w Twoim przypadku.
- Akcesor dla atrybutu daty, aby zwrócić żądany format:
W Twoim modelu testowym
Test.php
public function getDateAttribute($value)
{
return Carbon::createFromFormat('Y-m-d H', $value)->format('m');
}
Jednak wpłynie to na kod wszędzie.
- Drugim sposobem jest utworzenie niestandardowego atrybutu.
public function getFormattedDateAttribute()
{
return Carbon::createFromFormat('Y-m-d H', $this->date)->format('m');
}
- Trzeci sposób to edycja samej kolekcji.
$months = \App\Test::where('date', '<=', 'now()')
->orderBy('date', 'desc')
->pluck('date');
$months->each(function($month){
return Carbon::createFromFormat('Y-m-d H', $month)->format('m');
});