首页 > 解决方案 > 删除 eloquent 模型中的日期修改器

问题描述

我有一个模型,其created_at值定义为 Unix 时间戳。

我检索我的模型的一个实例$model = Model::where(...)->first()

当我var_dump($model->created_at)得到一个Illuminate\Support\Carbon实例而不是我的整数时间戳时。

根据文档重点是我的):

默认情况下,Eloquent 会将 created_at 和 updated_at 列转换为 Carbon 的实例,它扩展了 PHP DateTime 类以提供各种有用的方法。您可以通过覆盖模型的 $dates 属性来自定义自动更改的日期,甚至完全禁用此更改

我已经尝试添加protected $dates = []到我的模型中,但我仍然得到Carbon对象而不是整数。

如果我禁用时间戳 ( public $timestamps = false;) 它可以工作,但是当我创建新条目时我不会插入我的时间戳 - 我需要它。

标签: phplaraveldatelaravel-5.6mutators

解决方案


您是否尝试过使用:

protected $casts = [
    'created_at' => 'integer'
];

推荐阅读