Disable Laravel#39;s Eloquent timestamps(禁用 Laravel 的 Eloquent 时间戳)
问题描述
我正在将我们的一个 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 时间戳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:禁用 Laravel 的 Eloquent 时间戳
基础教程推荐
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- HTTP 与 FTP 上传 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01