【发布时间】:2019-01-07 19:46:58
【问题描述】:
当我们在 Laravel 中创建新的模型或数据库迁移时,我们可以使用 $table->timestamps();,它默认创建 created_at 和 updated_at。从最佳项目结构的角度来看,为什么项目需要这些字段?
【问题讨论】:
标签: php laravel-5.6 laravel-5.7
当我们在 Laravel 中创建新的模型或数据库迁移时,我们可以使用 $table->timestamps();,它默认创建 created_at 和 updated_at。从最佳项目结构的角度来看,为什么项目需要这些字段?
【问题讨论】:
标签: php laravel-5.6 laravel-5.7
知道何时创建或更新对象总是有用的。尽管我个人更喜欢为不同的目的创建不同的时间戳,比如如果我有一个异步处理的实体,我通常会添加一个名为 completed_at 的日期时间列,以便我知道作业何时完成。
如果您不喜欢默认时间戳,您可以通过分配 public $timestamps = false; 来移除它们。在你的 Eloquent 模型中。
【讨论】:
您在表中插入的每个Model/Records 最好跟踪其created_at 时间和updated_at 时间。 Timestamp 用例可能因个人而异。
大多数开发人员使用时间戳来跟踪他们的数据库记录。
这就是为什么 Laravel Eloquent 默认提供 created_at 和 updated_at 选项的原因。每当创建模型/记录时,created_at 列值会自动设置,每当记录更新时,updated_at 列值就会自动设置为该时间,因此开发人员需要编写最少的代码来管理时间戳。
Laravel 时间戳是可选的,在 Model 中使用 public $timestamps = false; 来禁用时间戳。
【讨论】:
create_at 和updated_at 在您的系统中有多个角色时非常有用。在我的项目中,我有多个角色,因此我添加了诸如 updated_by 和 created_by 之类的列以及 laravel 的 created_at 和 updated_at 我可以找到它的创建或更新日期和时间以及我的列 created_at 和 @ 987654328@我可以查到which user created record和which user updated记录。
还有 laravel 时间戳 automatically update 更新时的记录列,因此您无需担心它来编写代码以更改表中的 update_at 列。
所以基本上对于tracing timestamp 在您的项目中非常有用。
如果您不需要在每个表中都使用它,那么您可以在模型中使用下面的行来避免它。
public $timestamps = false;
【讨论】: