在Fractal Laravel中防止日期时间字段转换

问题描述 投票:1回答:2

我正在使用dingo laravel包来创建API。如您所知,它使用另一个名为Fractal的包来输出restful数据结构。

但是我遇到的问题是自动将日期时间格式化的字段(如created_atupdated_at)转换为包含datetimezone_typetimezone属性的对象。

现在我想阻止这种转换。我怎样才能做到这一点 ?

php laravel laravel-5.5
2个回答
1
投票

根据答案here

这是因为当转换为JSON时,Carbon对象返回该表示。

你有多种方法可以解决这个问题:

(string) $model->created_at, // or
$model->created_at->toDateTimeString(), // or
$model->created_at->getTimestamp() // to show a UNIX timestamp

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

© www.soinside.com 2019 - 2024. All rights reserved.