我使用dingo laravel包创建API。如您所知,它使用另一个名为Fractal的包来输出restful数据结构。
但是我遇到的问题是自动将DateTime格式的字段(如created_at
和updated_at
)转换为包含date
,timezone_type
和timezone
的对象属性。
现在我想阻止这种转换。我怎样才能做到这一点 ?
答案 0 :(得分:1)
基于答案here。
这是因为当转换为JSON时,Carbon对象返回该表示。
您有多种方法可以解决这个问题:
(string) $model->created_at, // or
$model->created_at->toDateTimeString(), // or
$model->created_at->getTimestamp() // to show a UNIX timestamp
答案 1 :(得分:0)
另一种方法(对我来说更清洁)是Global Customization Via Carbon:
// AppServiceProvider.php
public function boot()
{
Carbon::serializeUsing(function ($carbon) {
return $carbon->format('Y-m-d H:i:s');
});
}
现在在您的变压器中,您可以使用:
'created_at' => $post->created_at,
'updated_at' => $post->updated_at,
'deleted_at' => $post->deleted_at,
无需检查$post->deleted_at
是否为null
。