【问题标题】:Check unique email with password not null in laravel在laravel中检查密码不为空的唯一电子邮件
【发布时间】:2021-11-07 22:41:09
【问题描述】:

我有一个用户表,其中有两个字段电子邮件和密码

 $validator = Validator::make($request->all(),[
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:5', 'confirmed','min:8'],
            'password_confirmation' => ['min:8']
        ]);

我正在使用唯一字段来检查电子邮件是否唯一,但我只想在电子邮件已经存在且密码字段不为空时才显示消息用户已经存在,因为我有一个案例,如果用户通过社交媒体帐户登录然后密码未保存且为空,因此当用户尝试通过普通帐户注册时,我想更新用户字段。

任何建议谢谢

【问题讨论】:

    标签: laravel laravel-validation


    【解决方案1】:

    你可以有一个更高级的唯一规则:

     $validator = Validator::make($request->all(),[
        'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->where(function ($q) {
       $q->whereNotNull('password');
    }) ],
        'password' => ['required', 'string', 'min:5', 'confirmed','min:8'],
        'password_confirmation' => ['min:8']
    ]);
    

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 1970-01-01
      • 2013-01-06
      • 2015-07-03
      • 2019-12-06
      • 2016-05-09
      • 1970-01-01
      • 2016-11-03
      • 2020-12-03
      相关资源
      最近更新 更多