【问题标题】:laravel - after removing updated_at and created_at columns from database laravel tries to insert into themlaravel - 从数据库中删除 updated_at 和 created_at 列后,laravel 尝试插入它们
【发布时间】:2018-04-24 17:29:43
【问题描述】:

我已经从数据库中删除了 created_at 和 updated_at,但是 laravel 尝试插入这些列,但是我已经从数据库和控制器中的代码中删除了。我认为有些东西被缓存了。顺便说一句,我不想​​在模型中使用 public $timestamps = false,因为它们似乎是多余的和不需要的。

【问题讨论】:

  • 您是否将它们从迁移中删除?
  • 是的!从数据库、迁移、控制器中删除!

标签: php laravel laravel-5 eloquent laravel-migrations


【解决方案1】:

好吧,其实你需要设置:

public $timestamps = false;

而且它不是额外的和不需要的,因为默认情况下它假定模型具有时间戳(实际上将它们保留在几乎所有表中是非常合理的)。

时间戳用于保存记录:

if ($this->usesTimestamps()) {
    $this->updateTimestamps();
}

因此,当您在表中没有这些列时,使用 Eloquent 将此属性设置为 false 时,没有其他更短的方法。

【讨论】:

  • 所以你的意思是每个表都需要这两列并且它们是必需的??我不知道!因为我有几张桌子没有这两个并且工作正常!
  • 如果你使用 Eloquent 保存所有表,默认情况下应该有时间戳,除了数据透视表。但是,如果您正在使用例如查询生成器,则不需要它们。
  • 我不知道什么是数据透视表。我所知道的是我用过 Eloquent,他们都不需要它!
  • 那么,如果您知道 Eloquent 不需要它们,为什么还要问 SO?正如我所说,默认情况下,如果您不将时间戳设置为 false,Eloquent 将始终尝试设置 created_at 和 updated_at 列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
  • 2015-11-26
  • 2016-04-05
  • 2019-01-22
相关资源
最近更新 更多