升级到Laravel 5.8后,“ created_at”字段将返回这样的字符串
“ createdAt”:“ 2019-05-01T16:36:25.000000Z”
但是我想像Laravel 5.7中一样返回一个对象 像这样:
“ createdAt”:{ “ date”:“ 2019-05-01 19:36:25.000000”, “ timezone_type”:3, “时区”:“亚洲/巴格达” }
我确实在网上看到了什么,但升级指南中也没有。 我从资源中返回它就像一个JSON:
public function toArray($request)
{
return [
'id' => $this->id,
'createdAt' => $this->created_at,
];
}
答案 0 :(得分:1)
这就是我可以解决的方法:
public function toArray($request)
{
return [
'id' => $this->id,
'createdAt' => $this->created_at,
'date' => Carbon::serializeUsing(function ($createdAt) {
return [
'date' => $createdAt->toDateTimeString(),
'timezone_type' => $createdAt->timezone_type,
'timezone' => $createdAt->tzName,
];
}),
];
}
现在,它返回这样的对象:
"createdAt": {
"date": "2019-05-01 19:36:25",
"timezone_type": 3,
"timezone": "Asia/Baghdad"
},
"date": null
重大更改记录在official Carbon documentation中。
答案 1 :(得分:0)
尝试返回日期的碳实例:
Carbon::parse($this->created_at)