Bạn có thể làm điều đó, thông qua ba cách. Tất cả các giải pháp đó phụ thuộc vào thực tế là thuộc tính date không phải là một phiên bản Carbon, đó là trường hợp của bạn.
- Một trình truy cập cho thuộc tính ngày tháng để trả về định dạng mà bạn mong muốn:
Trong mô hình thử nghiệm của bạn
Test.php
public function getDateAttribute($value)
{
return Carbon::createFromFormat('Y-m-d H', $value)->format('m');
}
Tuy nhiên, điều này sẽ ảnh hưởng đến mã ở mọi nơi.
- Cách thứ hai là tạo thuộc tính tùy chỉnh.
public function getFormattedDateAttribute()
{
return Carbon::createFromFormat('Y-m-d H', $this->date)->format('m');
}
- Cách thứ ba là chỉnh sửa chính bộ sưu tập.
$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');
});