Laravel 校验规则之字段值唯一性校验

'name' => 'required|unique:test,display_name,11,age,extra_field,extraValue'

解释
对于客户端输入的 name 字段
name 不能为空

name 字段值在给定的数据库表中需为唯一值

// unique 校验规则
unique:table,column,except,idColumn
// 举个栗子
unique:test,display_name,11,age,extra_field,extraValue

test => 数据库表
display_name => test 数据表结构中的字段名称
11,age => except,idColumn // 表示忽略 test 数据表中 age = 11 的数据记录
extra_field,extraValue => 额外的where条件 {
    // 表示上述规则只会为数据库test表中 extra_field = 'extraValue' 的数据记录做唯一规则的验证
}

Laravel 校验规则之字段值唯一性校验

在laravel里检验唯一性是很简单的。转一篇实践证明是ok的文章,记录一下。

1.在注册用户时,我们往往规定用户名必须唯一。除了在数据表中设置用户名字段的唯一性以外,还必须在程序中加以判断

2.程序中判断的通常做法是:以该用户名作为搜索条件进行搜索,搜索不到数据表明可以注册,否则不能注册

3.在Laravel框架中提供了更好的解决方案,自动帮我们检查唯一性,下面通过以下示例来说明(别忘了在控制器中引用Validator类)

$input = [‘user_name’=>’huang123′,’password’=>’huang123’];
$rules = [
‘user_name’=>’unique:users’,
];
$messages = [
‘user_name.unique’=>’该用户名已经存在’,
];

$validator = Validator::make($input,$rules,$messages);

(1)别忘了在控制器中引用Validator类
(2)users是要检查的表,若在.env文件中设置了数据表前缀,这里会自动运用
(3)若有其他规则,可以和唯一性规则写在一起,中间用‘|’隔开
————————————————

原文链接:https://blog.csdn.net/qq_36663951/article/details/77160339