在Laravel中保存数据时如何禁用updated_at和created_at

时间:2019-08-05 05:43:51

标签: php laravel eloquent model

我试图将数据保存在模型函数中。使用模型的save()函数时,出现如下错误。

  

Illuminate \ Database \ QueryException:SQLSTATE [42S22]:找不到列:1054“字段列表”中的未知列“ updated_at”(SQL:插入account_typesname,{{1} },updated_at)值(制造商,2019-08-05 05:33:57,2019-08-05 05:33:57))在文件F:\ HTML&

我已删除表coz中的created_at和updated_at列,我不需要它。 我想知道在Laravel中使用模型save()函数时如何禁用created_at和update_at数据保存。

created_at

2 个答案:

答案 0 :(得分:5)

只需添加:

public $timestamps = false;

在您的模型中,您很高兴。

答案 1 :(得分:1)

您要么必须在每个模型中声明 public $ timestamps = false; ,要么创建一个BaseModel,在其中定义它,并让您的所有模型都对其进行扩展,而不是雄辩。如果您使用的是Eloquent,请记住,透视表必须有时间戳。

更新:请注意,在Laravel v3之后,数据透视表中不再需要时间戳。

更新:您还可以通过从迁移中删除 $ table-> timestamps()来禁用时间戳。

您可以这样使用。

public $timestamps = false;

  public function setUpdatedAt($value)
{
  return NULL;
}


public function setCreatedAt($value)
{
  return NULL;
}