php – laravel 4:验证唯一(数据库)多个where子句
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" 然后检查此查询是否返回结果,如果没有通过验证器. 所以我想知道是否有办法在条款中添加更多内容?如果是这样怎么样?
结束我原来的问题:
我可以只是叠加它们,或者如果没有我怎么写我的验证? 回答 是的我可以像下面那样堆叠它们.所以,如果我想在我的唯一验证器中添加多个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' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |