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

Prevent datetime field conversion in Fractal Laravel

我正在使用 dingo laravel package to create an API. As you know it uses another package named Fractal 输出 restful 数据结构。

但是我遇到的一个问题是自动将 created_atupdated_at 等 DateTime 格式的字段转换为一个对象,包括 datetimezone_typetimezone 属性。

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

基于回答here

这是因为 Carbon 对象在转换为 JSON returns 表示时。

您有多种解决方法:

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

另一个(对我来说更干净)方法是 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