【发布时间】:2018-09-15 04:40:26
【问题描述】:
我有一个 Laravel 5.4 应用程序,每当我尝试在未更改电子邮件的情况下更新用户时,我都会收到错误“电子邮件已在使用中”,这是有道理的,因为已编辑的用户已经拥有电子邮件。通常我只使用这样的东西来处理它:
'email' => 'required|max:128|unique:users,email,'.$u->email,
但是,这不适用于此特定应用。我仍然收到相同的“已在使用”错误。
php替换字符串后完整的验证规则对象如下:
$rules = [
"name" => "required|max:64",
"email" => "required|max:128|unique:users,email,user@admin.com",
"role" => "required"
]
我找不到任何问题。什么可能导致不正确的验证?
如果有帮助,我将添加整个更新功能验证过程。
$u = User::find($id);
$input = $request->all();
$rules = [
'name' => 'required|max:64',
'email' => 'required|max:128|unique:users,email,'.$u->email,
'role' => 'required'
];
$messages = [
'email.required' => 'El Email es obligatorio',
'email.max' => 'El Email no debe exceder los 128 caracteres',
'email.unique' => 'Ya existe un usuario con este Email',
'name.required' => 'El nombre es obligatorio',
'name.max' => 'El Email no debe exceder los 64 caracteres',
'role.required' => 'El Rol es obligatorio',
];
$validator = Validator::make($input, $rules, $messages);
if ( $validator->fails() ) {
return redirect('users/'.$id.'/edit')->withErrors($validator)->withInput();
} else {
// update user
}
【问题讨论】:
标签: validation laravel-5