如何修改 Laravel 的 created_at 和 updated_at 字段名称?

21

有时候我们在一个已有的数据库上使用 Laravel 进行开发,通常表的创建和更新时间的字段名并不是created_atupdated_at,也有时候只有一个创建时间而没有更新时间,那么我们在数据模型定义的时候该怎么处理呢?

这里提供两种方法。

第一种、重写常量(推荐)

class User extends Eloquent {

    const CREATED_AT == 'post_date';
    const UPDATED_AT == 'post_modified';

}

这样子 getCreatedAtColumn 和 getUpdatedAtColumn 就会对应的返回 post_date 和 post_modified 字段了。而更新的时候,也会使用新的字段名称。

第二种、模型事件

class User extends Eloquent {

    public $timestamps = false;

    public static function boot()
    {
        parent::boot();

        static::creating(function ($model) {
            $model->created = $model->freshTimestampString();
        });

        static::updating(function ($model) {
            $model->updated = $model->freshTimestampString();
        });
    }

}
讨论数量: 1

不错

1周前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!