【问题标题】:Remove date mutator in eloquent models删除 eloquent 模型中的日期修改器
【发布时间】:2018-10-22 15:53:46
【问题描述】:

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

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

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

根据the documentation(强调我的):

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

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

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

【问题讨论】:

  • 你试过protected $timestamps = false吗?
  • @thisiskelvin 但是如果我禁用 $timestamps 我在创建新条目时不会在表中获得 created_at 值。我仍然需要那个
  • 您可以手动添加。
  • 此外,您可以在创建、更新、删除模型后添加模型事件/观察者。你想让我回答一下吗?
  • 这对我有用。请做@thisiskelvin

标签: php laravel date laravel-5.6 mutators


【解决方案1】:

您是否尝试过使用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多