📅  最后修改于: 2023-12-03 14:55:25.563000             🧑  作者: Mango
这个错误通常发生在使用 Laravel (或其他基于 Eloquent ORM 的框架)构建 Web 应用程序时。它表示数据库表中没有名为 updated_at
的列,但在模型中却尝试使用它。
以下是一些可能出现此错误的场景和解决方案。
在 Laravel 应用程序中,每个数据库表都应该对应一个迁移文件,用于创建和修改表结构。如果你尝试在 Eloquent 模型中使用 updated_at
列,但没有相应的迁移文件去创建这个列,就会导致此错误。
解决方法:创建一个迁移文件,添加 updated_at
列到数据库表中,然后运行迁移。
Schema::table('your_table_name', function (Blueprint $table) {
$table->timestamp('updated_at')->nullable();
});
如果你使用了错误的表名,在影响的表中没有 updated_at
列,就会出现此错误。
解决方法:检查你的 Eloquent 模型和查询语句中使用的表名是否正确,确保你正在更新正确的表。
默认情况下,Eloquent 模型会自动维护 created_at
和 updated_at
两个时间戳列。如果你在 Eloquent 模型中禁用了时间戳,就会导致此错误。
解决方法:启用时间戳列,或者在查询语句中手动指定更新时间戳字段。
// 在 Eloquent 模型中启用时间戳列
public $timestamps = true;
// 在查询语句中手动指定更新时间戳字段
YourModel::where('id', $id)->update([
'other_column' => $value,
'updated_at' => now(), // 手动更新时间戳
]);
总之,未找到列:1054 未知列 'updated_at' - PHP 错误通常是由于数据库表结构和 Eloquent 模型不一致导致的。需要检查数据库表和 Eloquent 模型之间的字段映射关系,确保它们匹配正确。