一尘不染

更改Laravel的created_at和Updated_at的名称

mysql

我可以从以下位置映射Laravel的时间戳:

created_atpost_datepost_date_gmt

updated_atpost_modifiedpost_modified_gmt


我正在将Wordpress应用程序迁移到Laravel。

我正在使用Laravel访问Wordpress数据库的副本。数据库的实时版本仍在使用中,因此我不想更改架构。

该帖子表有post_datepost_date_gmtpost_modifiedpost_modified_gmt,但Laravel期待created_atupdated_at

无论如何,有没有要更改Laravel查找的列名?

我希望Laravel更新所有已经存在的列的时间戳。


阅读 330

收藏
2020-05-17

共1个答案

一尘不染

不幸的是,接受的答案可能会导致时间戳更新问题。

您最好在模型上覆盖const:

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

然后方法getCreatedAtColumngetUpdatedAtColumn将分别返回post_datepost_modified,但不会造成任何伤害。

对于其他列,您需要使用类似@Oni建议的事件。

2020-05-17