Php 升级到Laravel 5.8后如何确定碳时区
升级到Laravel 5.8后,“created_at”字段将返回如下字符串 “createdAt”:“2019-05-01T16:36:25.000000Z” 但是我想返回一个对象,就像以前在Laravel 5.7中一样 像这样:Php 升级到Laravel 5.8后如何确定碳时区,php,laravel,php-carbon,laravel-5.8,Php,Laravel,Php Carbon,Laravel 5.8,升级到Laravel 5.8后,“created_at”字段将返回如下字符串 “createdAt”:“2019-05-01T16:36:25.000000Z” 但是我想返回一个对象,就像以前在Laravel 5.7中一样 像这样: "createdAt": { "date": "2019-05-01 19:36:25", "timezone_type": 3, "timezone": "Asia/Baghdad" }, "date": null “创建数据”:{
"createdAt": {
"date": "2019-05-01 19:36:25",
"timezone_type": 3,
"timezone": "Asia/Baghdad"
},
"date": null
“创建数据”:{
“日期”:“2019-05-01 19:36:25.000000”,
“时区类型”:3,
“时区”:“亚洲/巴格达”
}
我确实环顾了一下网络,没有发现任何关于它的信息,在升级指南中也没有。
我从参考资料中返回它,就像一个JSON:
公共功能待命($request)
{
返回[
'id'=>this->id,
'createdAt'=>$this->created\u在,
];
}
尝试返回日期的碳实例:
Carbon::parse($this->created_at)
这就是我解决问题的方法:
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
中断更改记录在。也返回字符串“createdAt”:“2019-05-01T16:36:25.000000 Z”