Laravel 模型项目设置碳项目但返回字符串

Mad*_*sen 5 datetime types laravel php-carbon

我在数据库模式中添加了一个日期时间:

$table->dateTime('send_at')->nullable();
Run Code Online (Sandbox Code Playgroud)

我已将属性设置为播种器中的 Carbon 实例:

$invoice->send_at = Carbon::now();
Run Code Online (Sandbox Code Playgroud)

当我尝试获取控制器内属性的类型时,它返回一个字符串:

dd(gettype($data['invoices'][0]->send_at));
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?我如何确定它是一个 Carbon 对象而不是一个字符串?

sta*_*sta 6

在您的模型上,您需要定义$dates属性来自动为列创建 Carbon 实例:

protected $dates = ['send_at'];
Run Code Online (Sandbox Code Playgroud)

自 Laravel 8 起:

protected $casts = [
    'send_at' => 'datetime',
];
Run Code Online (Sandbox Code Playgroud)