Laravel 5验证:用于检查具有异常的电子邮件的唯一规则

时间:2015-04-24 14:26:44

标签: validation laravel laravel-5

对于测试和支持问题,我想在我的用户数据库中多次使用一两封电子邮件。所有其他电子邮件应该是唯一的。 例如:

"email" => "required|email|unique:users,email,admin@test.de"

这不起作用,我无法使用id字段作为例外,因为会有多个条目包含相同的电子邮件。

2 个答案:

答案 0 :(得分:3)

听起来像sometimes

的情况
$whitelist = ['admin@test.de', 'foo@bar.com', 'etc@etc.com'];
$validator->sometimes('email', 'unique:users', function($input) use ($whitelist){
    return ! in_array($input->email, $whitelist);
});

如果电子邮件不在白名单中,则unique规则适用。

在表单请求中,您可以通过覆盖getValidatorInstance()将内容添加到验证程序实例:

protected getValidatorInstance(){
    $validator = parent::getValidatorInstance();
    $validator->sometimes(...);
    return $validator;
}

答案 1 :(得分:0)

请尝试以下XX是您的测试用户ID。

"email" => "required|email|unique:users,email,XX,id"

PS如果您想

,也可以在运行时动态设置它