欢迎各位兄弟 发布技术文章
这里的技术是共享的
except就是主键id的值,,,,,idColumn指的是id的列名,可能不是'id'(比如 'user_id')
字段值在给定的数据库中需为唯一值。如果 column(字段)
选项没有指定,将会使用字段名称。
Occasionally, you may need to set a custom connection for database queries made by the Validator. As seen above, setting unique:users
as a validation rule will use the default database connection to query the database. To override this, do the following:
$verifier = App::make('validation.presence');
$verifier->setConnection('connectionName');
$validator = Validator::make($input, [
'name' => 'required',
'password' => 'required|min:8',
'email' => 'required|email|unique:users',
]);
$validator->setPresenceVerifier($verifier);
'email' => 'unique:users'
'email' => 'unique:users,email_address'
'email' => 'unique:users,email_address,10'
您也可以指定更多的条件式到 "where" 查询语句中:
'email' => 'unique:users,email_address,NULL,id,account_id,1'
上述规则为只有 account_id
为 1
的数据列会做唯一规则的验证。
验证字段在给定数据表上必须是唯一的,如果不指定column
选项,字段名将作为默认column
。
'email' => 'unique:users,email_address'
有时候,你可能需要自定义验证器生成的数据库连接,正如上面所看到的,设置unique:users
作为验证规则将会使用默认数据库连接来查询数据库。要覆盖默认连接,在数据表名后使用”.“指定连接:
'email' => 'unique:connection.users,email_address'
有时候,你可能希望在唯一检查时忽略给定ID,例如,考虑一个包含用户名、邮箱地址和位置的”更新属性“界面,当然,你将会验证邮箱地址是唯一的,然而,如果用户只改变用户名字段而并没有改变邮箱字段,你不想要因为用户已经拥有该邮箱地址而抛出验证错误,你只想要在用户提供的邮箱已经被别人使用的情况下才抛出验证错误,要告诉唯一规则忽略用户ID,可以传递ID作为第三个参数:
'email' => 'unique:users,email_address,'.$user->id
where
子句:还可以指定更多条件给where
子句:
'email' => 'unique:users,email_address,NULL,id,account_id,1'
以上 见 /node/6413