【发布时间】:2020-09-07 14:34:48
【问题描述】:
我有一个包含以下值的表单:stage_name、stage_type、'client_id'、'created_at'、'updated_at'
我能够创建一种在表中添加新项目的方法,但是在尝试更新它时遇到了这个错误:
"SQLSTATE[HY000]: 一般错误: 1364 字段 'client_id' 没有默认值 (SQL: 插入stages (updated_at, created_at) 值 (2020-05-21 02: 43:53, 2020-05-21 02:43:53))"
我的控制器更新功能:
public function update(Request $request, Stage $stage)
{
$request->validate([
'stage_name' => 'required|max:300',
'stage_type' => 'required'
]);
$client = Auth::user()->client_id;
$stage->update([
'stage_name' => $request-> stage_name,
'stage_type' => $request->stage_type,
'client_id' => $client,
]);
$stage->save();
return $stage;
}
即使我直接定义 client_id => 1 它仍然会产生相同的错误
【问题讨论】:
-
检查路由模型绑定是否有效。在函数的第一行执行
dd($stage);并检查是否正在获取正确的数据。并检查您的 Route 文件以查看类型提示的变量名称$stage是否与路由段名称../{stage}匹配。
标签: php laravel controller updates