laravel如何使唯一规则排除空白或null

Phi*_*hil 5 laravel

我有一个用户模型,需要有唯一的电子邮件地址,但我也想让它们留空,以防用户没有电子邮件...我在文档中看到有一种方法可以为独特和异常制定规则对于一个id ...但我不知道如何使这个允许null或空白,但如果不是这样就是唯一的.对不起似乎这很简单,但我想不出答案.

   public static $adminrules = 
        'email' => 'email|unique:users,email,null,id,email,NOT_EMPTY'                             
    );   
Run Code Online (Sandbox Code Playgroud)

编辑可能是因为使用规则required是不够的,因为空白或null将在这些情况下通过验证.我可能有一个相关的错误,所以我不能添加超过1个空白电子邮件,所以我无法验证这一点.

   public static $adminrules = 
        'email' => 'email|unique:users'                             
    ); 
Run Code Online (Sandbox Code Playgroud)

小智 7

我试过这个。在“有时”之前添加“可为空”。

 $validator = Validator::make($request->all(), [
        'email' => 'nullable|sometimes|unique:users',
    ]);
Run Code Online (Sandbox Code Playgroud)


MaG*_*tas 0

你应该尝试这个:

$v->sometimes('email', 'email|unique:users,email', function($input)
{
    return !empty($input->email);
});
Run Code Online (Sandbox Code Playgroud)

$v 是您的验证器对象,您基本上是说,如果电子邮件字段不为空,它也应该是唯一的(电子邮件列中不应该有具有此值的用户表记录)。