我正在将我们的一个 Web 应用程序从 CodeIgniter 转换为 Laravel.然而,此时我们不想将 updated_at
/created_at
字段添加到我们所有的表中,因为我们有一个日志类可以更深入地完成所有这些工作已经.
I'm in the process of converting one of our web applications from CodeIgniter to Laravel. However at this moment we don't want to add the updated_at
/ created_at
fields to all of our tables as we have a logging class that does all this in more depth for us already.
我知道我可以在:
VendorlaravelframeworksrcilluminateDatebaseEloquentModel.php
然而,我宁愿不更改 Laravel 的核心文件,也不想让我的每个模型都将其放在顶部.有没有办法在其他地方为所有模型禁用此功能?
However I'd rather not change a core file for Laravel, or have everyone of my models have that at the top. Is there any way to disable this elsewhere for all models?
你要么必须在每个模型中声明 public $timestamps = false;
,要么创建一个 BaseModel,在那里定义它,并有你所有的模型都扩展了它而不是雄辩.如果您使用 Eloquent,请记住数据透视表必须有时间戳.
You either have to declare public $timestamps = false;
in every model, or create a BaseModel, define it there, and have all your models extend it instead of eloquent. Just bare in mind pivot tables MUST have timestamps if you're using Eloquent.
更新:请注意,在 Laravel v3 之后,数据透视表中不再需要时间戳.
Update: Note that timestamps are no longer REQUIRED in pivot tables after Laravel v3.
更新:您还可以通过从迁移中删除 $table->timestamps()
来禁用时间戳.
Update: You can also disable timestamps by removing $table->timestamps()
from your migration.
这篇关于禁用 Laravel 的 Eloquent 时间戳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!