php – laravel 4:验证唯一(数据库)多个where子句

前端之家收集整理的这篇文章主要介绍了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"

然后检查此查询是否返回结果,如果没有通过验证器.

所以我想知道是否有办法在条款中添加更多内容?如果是这样怎么样?

结束我原来的问题:

我可以只是叠加它们,或者如果没有我怎么写我的验证?
所以我可以添加“,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'

猜你在找的Laravel相关文章