Php 完整性约束冲突:1062个电子邮件重复条目
我做了一个Laravel项目,用户可以用名称和电子邮件密码更新他们的个人资料 更新用户配置文件时,我收到完整性约束冲突:1062个重复条目, 在用户表中,电子邮件是唯一的…如何使用消息“电子邮件已被接收”处理此错误,以便不会引发查询异常错误 这是我的刀锉Php 完整性约束冲突:1062个电子邮件重复条目,php,laravel,controller,laravel-blade,Php,Laravel,Controller,Laravel Blade,我做了一个Laravel项目,用户可以用名称和电子邮件密码更新他们的个人资料 更新用户配置文件时,我收到完整性约束冲突:1062个重复条目, 在用户表中,电子邮件是唯一的…如何使用消息“电子邮件已被接收”处理此错误,以便不会引发查询异常错误 这是我的刀锉 <div class="form-group row"> <label for="exampleInputEmail1" class="col-sm-2
<div class="form-group row">
<label for="exampleInputEmail1" class="col-sm-2 col-form-label">
Email
</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="exampleInputEmail1" value="{{ (isset($user_update)) ? pdate->email : '' }}" name="email" placeholder="Enter Your Email Here">
</div>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>
{{ $message }}
</strong>
</span>
@enderror
</div>
我的验证请求规则是
return [
'name'=>'required',
'email'=>'required',
'confirm_password'=>'required',
'new_password'=>'required',
'old_password'=>'required',
//
];
我想以电子邮件已被接收的形式显示错误消息,以便我的运行时项目将来不会显示查询异常。。。
配置文件更新方法工作正常,无需更新电子邮件。。。我只想显示上面提到的错误消息您好,我认为您的带有验证方法的请求类可能如下所示
public function rules()
{
return [
'name' => ['required', 'max:50'],
'email' => ['required', 'max:50', 'email', Rule::unique('users')],
'confirm_password'=>'required',
'new_password'=>'required',
'old_password'=>'required',
];
}
根据最新版本的Laravel(v8),您可以执行以下操作:
Validator::make($data, [
'email' => [
'required',
Rule::unique('your-table')->ignore($user->id),
],
]);
'email'=>'required | unique',
此处验证中缺少unique
,我理解您的意思…添加**'email'=>'required | unique将按预期抛出错误消息…..使用此用户甚至无法更新其姓名密码**'email'=>'required | unique:用户,电子邮件'。$this->route('user'))->将此更改为验证时的id**已解决此问题
Validator::make($data, [
'email' => [
'required',
Rule::unique('your-table')->ignore($user->id),
],
]);