Php Laravel验证:软删除+;独特的电子邮件&x2B;更新

Php Laravel验证:软删除+;独特的电子邮件&x2B;更新,php,laravel,validation,laravel-7,Php,Laravel,Validation,Laravel 7,我正在尝试设置客户端注册检查和配置文件编辑 我正在使用软删除 电子邮件必须是唯一的(当然不包括深入研究的邮件) 如果配置文件已编辑(id存在),则必须忽略该电子邮件字段 到目前为止我有 'email' => [ 'required', 'email', 'unique:clients,email,NULL,deleted_at,deleted_at,NULL', ], 现在,它可以正常工作并检测未删除的唯一电子邮件,但当我需要从客户端编辑配置文件时,它会给我错误。

我正在尝试设置客户端注册检查和配置文件编辑

  • 我正在使用软删除
  • 电子邮件必须是唯一的(当然不包括深入研究的邮件)
  • 如果配置文件已编辑(id存在),则必须忽略该电子邮件字段
  • 到目前为止我有

    'email' => [
        'required',
        'email',
        'unique:clients,email,NULL,deleted_at,deleted_at,NULL',
    ],
    
    现在,它可以正常工作并检测未删除的唯一电子邮件,但当我需要从客户端编辑配置文件时,它会给我错误。我尝试添加其他独特设置,但它们似乎被忽略:

    'email' => [
        'required',
        'email',
        'unique:clients,email,NULL,deleted_at,deleted_at,NULL',
        Rule::unique('clients')->ignore('id', (int)$request->input('id')) // <- from Laravel docs, but is not working
    ],
    
    试试这个

     $this->validate($request,[
                'email'=>['required','email',Rule::unique('clients','email')->ignore($id)->whereNull('deleted_at')]
            ]); 
    
    

    尝试以下代码`$this->validate($request,['email'=>['required','email',Rule::unique('clients','email')->ignore(auth()->id()->whereNull('deleted_at'))]]`@kunalrajput我得到一个成员函数的
    调用,其中integer上的null()是您的客户端身份验证用户,您刚刚在关闭时出错”)“我不需要身份验证id,但需要请求id。多亏了您,现在已经修复了它。加上它作为答案,我会同意的,是的,这是一个打字错误。谢谢
    
     $this->validate($request,[
                'email'=>['required','email',Rule::unique('clients','email')->ignore($id)->whereNull('deleted_at')]
            ]);