laravel 4文档提到了独特的现场验证.他们在这里解释如何将where子句包含在唯一验证中.例如,唯一表的单个WHERE子句:
$validator = Validator::make( array( 'name' => 'John Doe' ),array( 'name' => 'unique:table,field,NULL,id,field1,value1' ) );
> http://laravel.com/docs/validation#rule-unique
现在我假设这样做:
"SELECT id FROM table WHERE field = 'John Doe' AND field1 = value1 LIMIT 1"
然后检查此查询是否返回结果,如果没有通过验证器.
结束我原来的问题:
我可以只是叠加它们,或者如果没有我怎么写我的验证?
所以我可以添加“,field2,value2,field3,value3”等.并堆叠它们
像这样?
回答
是的我可以像下面那样堆叠它们.所以,如果我想在我的唯一验证器中添加多个where子句,我会这样做:
'name' => 'unique:table,value1,value3'
例外
根据Laravel documentation,唯一规则中给出的第三个参数是except参数.
unique:table,column,except,idColumn
我将此参数保留为NULL,因为它与原始问题无关.对于那些想知道这个NULL的功能在唯一规则中的人,让我详细说明:
except参数强制使用唯一规则来忽略给定的ID.因此将其指定为NULL将导致检查每条记录(即忽略任何记录).
例如:假设我们希望我们的用户电子邮件是唯一的,但我们的管理员用户也可能拥有使用相同电子邮件的普通用户帐户.假设我们的管理员用户是我们创建的第一个用户,其id为1.那么在创建新用户时我们可以做的是:
'name' => 'unique:users,email,1,id'