是否有任何验证表达式,如unique:在laravel中,如果属性的数据库中存在值,则返回true

时间:2015-10-12 11:47:23

标签: validation laravel laravel-validation

是否有任何验证表达式如unique:在Laravel中,如果数据库中存在以下属性,则返回true,如:。看一下电子邮件属性: -

au FileType c,cpp,php match error /\s\+$\|\%>80v.\+\|[ ][ ]\+\|\n\n\n\+\|,[^ ]\|^[ ]\+[^\*]\|(\s\+\|\s\+)/

==> unique:如果值存在则返回false

如果没有这样的验证,那么如何通过扩展Validator来解决这个问题来制作自定义验证器?请帮忙

3 个答案:

答案 0 :(得分:1)

是的,它的语法是unique:table,column,except,idColumn

在你的情况下,

$rules= ['email' => 'unique:users,email'];

有关更多文档,请查看this link

答案 1 :(得分:0)

我用它来验证任何唯一字段,在这种情况下,电子邮件ID属于USERS表:

 if (!empty($id)) {
     $rules['email'] = 'required|email|min:6|max:75|unique:users,email,' . $id . ',id,deleted_at,0000-00-00 00:00:00';
} 
else {
    $rules['email'] = 'required|email|min:6|max:75|unique:users,email,NULL,id,deleted_at,0000-00-00 00:00:00';
}

答案 2 :(得分:0)

回答“如何创建新验证器”的问题。 方法如下:

Validator::extend('validator_name', function ($attribute, $value, $parameters, $validator){

// whatever code you want here, I suggest you play with the parameters

// below there is an example of validation using regex
  return preg_match('/^[\pL\h]+$/u', $value);
});

要使此代码有效,请创建一个ValidatorServiceProvider并将此代码放在boot()函数中,然后在app.php中注册提供程序,如下所示:

App\Providers\ValidatorServiceProvider::class,