Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 完整性约束冲突:1062个电子邮件重复条目_Php_Laravel_Controller_Laravel Blade - Fatal编程技术网

Php 完整性约束冲突: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

我做了一个Laravel项目,用户可以用名称和电子邮件密码更新他们的个人资料 更新用户配置文件时,我收到完整性约束冲突:1062个重复条目, 在用户表中,电子邮件是唯一的…如何使用消息“电子邮件已被接收”处理此错误,以便不会引发查询异常错误 这是我的刀锉

    <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),
  ],
]);