我试图在模型函数中保存数据。使用模型的 save() 函数时,我看到一些错误,如下所示。Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into account_types( name, updated_at, created_at) values (manufactuer, 2019-08-05 05:33:57, 2019-08-05 05:33:57)) 在文件 F:\HTML&我已经删除了表中的 created_at 和 updated_at 列,因为我不需要它。我想知道在 Laravel 中使用模型 save() 函数时如何禁用 created_at 和 update_at 数据保存。<?phpnamespace pshub;use Illuminate\Database\Eloquent\Model;class AccountType extends Model{ /** * The attributes that are mass assignable. * * @var array */ protected $fillable = ['name']; // Create Type Function public function createType($type) { $existence = $this->where('name', $type)->get(); if (sizeof($existence) > 0) { return $this->where('name', $type); } else { $this->name = $type; $this->save(); return $this->id; } }}
2 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
你要么必须声明public $timestamps = false; 在每个模型中,或者创建一个 BaseModel,在那里定义它,然后让你的所有模型扩展它而不是雄辩。如果您使用 Eloquent,请记住数据透视表必须有时间戳。
更新:请注意,在 Laravel v3 之后,数据透视表中不再需要时间戳。
更新:您还可以通过从迁移中删除$table->timestamps()来禁用时间戳。
你可以这样使用。
public $timestamps = false;
public function setUpdatedAt($value)
{
return NULL;
}
public function setCreatedAt($value)
{
return NULL;
}
- 2 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消