Laravel Eloquent 2 中的 created_at 和 modified_at 应该使用啥类型的列?

Posted

技术标签:

【中文标题】Laravel Eloquent 2 中的 created_at 和 modified_at 应该使用啥类型的列?【英文标题】:What type of column should I use for created_at and modified_at in Laravel Eloquent 2?Laravel Eloquent 2 中的 created_at 和 modified_at 应该使用什么类型的列? 【发布时间】:2012-08-31 00:54:12 【问题描述】:

我应该使用 DATETEIME 吗?还是INT?

谢谢!

编辑: 我专门针对

public static $timestamps = true;

在 Eloquent 模型中设置的标志。

【问题讨论】:

是的。不?可能。确实。您是存储日期,还是存储整数?有了那个问题的答案,你的问题就解决了。 Laravel 提供了一个选项来自动处理这个在模型中设置的变量:public static $timestamps = true;我正在尝试构建我的表来支持这一点。 @JamWaffles 你会考虑删除你的反对票吗?或者解释一下? 给你一个赞成票,因为这个问题不像 JamWaffles 回答听起来那么蹩脚。有不同的应用程序为此使用 unix 时间戳。我不想说它的好坏,但它们是存在的,所以应该允许人们质疑。 谢谢。这不是关于什么是最好/最差/对/错的问题,它只是关于框架使用什么的问题,因为我无法通过谷歌搜索或查看文档轻松找到它。 【参考方案1】:

Laravel 5 默认是 TIMESTAMP

【讨论】:

【参考方案2】:

作为更新:Mich's answer 对 Laravel 3 及以下版本仍然有效,

但从 Laravel 4 开始,它切换到支持 timestamp 列的 created_atupdated_at

Here's a related issue on GitHub

【讨论】:

【参考方案3】:

Laravel 仅支持 datetime 的时间戳。

https://github.com/laravel/laravel/pull/769

【讨论】:

检查我链接的拉取请求;) 我认为它被否决了,因为它不是你可以通过查看 laravel 有据可查的代码来回答自己的问题。因此,如果您查看 laravel/database/eloquent/model.php 并搜索时间戳,您会看到,有一个名为 timestamp() 的公共函数。在此函数中,您将看到 $this->updated_at 设置为 new \DateTime;因此,最好先查看您是否可以自己处理。

以上是关于Laravel Eloquent 2 中的 created_at 和 modified_at 应该使用啥类型的列?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Eloquent ORM 中的 join()->where()

如何根据 laravel eloquent orm 中的两列进行查询

laravel eloquent 中的一对多关系

使用 eloquent 截断 laravel 中的所有表

Laravel Eloquent 2 中的 created_at 和 modified_at 应该使用啥类型的列?

如何从 Laravel 8 Eloquent 中的嵌套关​​系中获取数据?