使用表单请求时,路由模型绑定失败



当我使用 FormRequest 验证请求时,路由模型绑定失败。更具体地说,当我尝试访问表单请求中的参数并给出以下错误时:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name:"moniersa"' in 'where clause' 
(SQL: select count(*) as aggregate from `users` where `email` = a.monier2130@gmail.com and 
`name:"moniersa"` <> {"id":5 and `email:"a`.`monier2130@gmail`.`com"` = 
email_verified_at:null and `admin:1` = verified:0 and `created_at:"2020-02-11 22:33:33"` = 
updated_at:"2020-02-11 23:17:40"})

更新方法的代码:

public function update(User $user, UpdateUserRequest $request)
{
$data = $this->extract_data($request);
$user->update($data);
return response()->json(['data' => $user], 200);
}

更新请求中的规则函数代码:

public function rules()
{
return [
'name' => 'required|string|min:3|max:40',
'email' => 'required|email|unique:users,email,' . $this->user,
'password' => 'required|string|min:9|confirmed'
];
}

每当我从更新方法中删除User提示或从更新请求文件中删除$this->user时,一切正常。关于问题是什么的任何线索是什么?

路由模型绑定意味着您不再需要使用$user = User::findOrFail($user);

public function update(User $user, UpdateUserRequest $request)
{
$user = User::findOrFail($user);// this line is redundant, you can remove it.
$data = $this->extract_data($request);
$user->update($data);
return response()->json(['data' => $user], 200);
}

最新更新