我创建了一个控制器函数来在测验表上插入新记录。为此,我使用了 Laravel 批量分配,之后我收到了此错误消息。
"message": "SQLSTATE[42S22]: 未找到列: 1054 未知列 “字段列表”中的“updated_at”(连接:mysql,SQL:插入
(quizzes
、title
、isfree
、updated_at
)值 (Menjaga Pola Makan, 1, 2024-01-13 06:20:07, 2024-01-13 06:20:07))", "exception": "照亮\数据库\QueryException", "文件": "D:\laravel\Quiz-Health-Education endor\laravel ramework\src\Illuminate\Database\Connection.php", “线路”:822created_at
控制器
public function create(Request $request)
{
$request->validate([
'title'=>'required',
'isfree'=>'required|boolean',
'img'=>'string|nullable',
'price'=>'nullable',
'disc'=>'nullable'
]);
if($request->isfree === false)
{
$request['price'] = null;
$request['disc'] = null;
}
$request['created_at'] = $request->date('d-m-Y');
Quiz::create($request->all());
return response()->json(['status' => 'success']);
}
错误消息表明 Laravel 正在尝试更新
updated_at
表中的 quizzes
列,但找不到该列。 Laravel 期望表中存在 created_at
和 updated_at
列。如果您的 quizzes
表没有 updated_at
列,并且您不想添加一列,则可以在 Quiz
模型中禁用时间戳功能。
class Quiz extends Model
{
public $timestamps = false;
// ...
}