Laravel / Lumen 框架修改 创建时间 和 更新时间 对应字段

时间:2020-12-20 15:39:50

为避免浪费时间……先上解决方案

在Model中重写 CREATED_ATUPDATED_AT 两个类常量就可以了,这两个常量分别是创建时间和更新时间的字段名。

===============================================

以下只是简单的介绍和十分逗比的解决过程

Laravel 是十分强大的全栈PHP框架,其衍生品 Lumen 则更加专精一些,官方将其定位在微服务和API开发领域。

Lumen 也是我目前采用的 API 开发框架,作为 Laravel 的子集,Lumen同样可以使用强大的 Eloquent ORM。

Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查询数据表内的数据,以及将记录添加到数据表中。

原文

问题

Eloquent 中使用了大量的约定来减轻开发者的负担,比如本次要提到的'创建时间'和'更新时间'字段

默认情况下,Eloquent 会认为在你的数据库表有 created_at 和 updated_at 字段。如果你不希望让 Eloquent 来自动维护这两个字段,可在模型内将 $timestamps 属性设置为 false

原文

通常来讲,我们只要按照这些约定来设计数据库和模型就好了,在数据表中建立created_at 和 updated_at 字段,然后就不用操心别的了~

但总有些特殊场景让我们无法遵从约定,比如我手上的项目,数据表结构由合作团队的人员设计好了,创建时间和更新时间分别是 createtimeupdatetime ,而且对方已经开发上了……再让人家改字段名显然也不太合适。

中文教程文档上看起来没有提如何修改字段……那就翻翻API文档吧……

果然API文档里找到了两个常量:

CREATED_ATUPDATED_AT;

看介绍,这两个值就是我想要的字段名了。遂重写之。可用。喜。

原本以为教程文档上就是不全,关键时刻还是要去查API文档,然而事后去翻了一下官方的英文文档……

If you need to customize the names of the columns used to store the timestamps, you may set the CREATED_AT and UPDATED_AT constants in your model

这TM不就写着呢吗(╯‵□′)╯︵┻━┻

这个故事告诉我们……翻译出来的文档上未必就是齐全的……翻译文档上没写的内容未必就是原文没有的……