是否有任何验证表达式如unique:在Laravel中,如果数据库中存在以下属性,则返回true,如:。看一下电子邮件属性: -
au FileType c,cpp,php match error /\s\+$\|\%>80v.\+\|[ ][ ]\+\|\n\n\n\+\|,[^ ]\|^[ ]\+[^\*]\|(\s\+\|\s\+)/
==> unique:如果值存在则返回false
如果没有这样的验证,那么如何通过扩展Validator来解决这个问题来制作自定义验证器?请帮忙
答案 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,