我是laravel的新手。最近,我为我的应用程序创建了我的ER图。在学习laravel时,我发现它们在模式构建器中具有创建created_at和updated_at列的时间戳属性。基于我的建模,我并不真正需要这些额外的列,因此必须拥有它们,或者在每个表上都有这些列的好处。
答案 0 :(得分:5)
在您需要的情况下,拥有它们的好处是Eloquent会自动更新这些字段。因此,假设您更新模型,Eloquent将自动设置updated_at,为您留下更少的代码来编写,维护和思考。
由于不要求在每个表上都有这些时间戳,您可以在相关模型上使用public $timestamps = false;
来禁用它们:
class User extends Eloquent {
protected $table = 'users';
public $timestamps = false;
}
答案 1 :(得分:1)
好吧,时间戳允许您跟踪最近更新记录的时间。但它在laravel中不是强制性的。当然,有时你真的不需要这些列。
如果您不想使用时间戳,请将其从迁移文件中删除,并通过在相应型号中指定created and updated at
来禁用public $timestamps = false
列。
答案 2 :(得分:0)
首先停止使用表中的时间戳,在$table->timestamps()
或Schema::table()
实现中不包括Schema::create()
,然后在每个没有包含时间戳的模型类中它的表格写为protected $timestamps = false;
时间戳的目的是跟踪插入或更新新记录的日期和时间,因此,每当您插入新记录(这意味着创建新模型)时,created_at和updated_at列将自动填充当前日期和时间,每次更新记录时,updated_at列都会随更新的日期和时间一起更新。
我不知道您使用的是哪个版本的Laravel,here's the Eloquent Model documentation以及migration documentation too供您参考。
请仔细阅读Laravel文档,它将让您具体了解事情的运作方式,以及如何轻松地完成开发。