Laravel验证器检查多个字段是否存在

时间:2014-11-06 04:02:30

标签: validation laravel laravel-validation

我正在创建一个用户登录表单,用户可以使用他/她的用户名或电子邮件登录Laravel,所以在后端,我想验证用户输入是现有的用户名还是现有的电子邮件地址,

之类的东西
    $validator = Validator::make(
        array('username_or_email' => $username_or_email),
        array('username_or_email' => 'exists:users,username|exists:users,email)
    );

但我怀疑上面是正确的语法,所以我该如何编写验证器?

1 个答案:

答案 0 :(得分:1)

假设您不允许@用户名,您可以这样做:

if (strpos($username_or_email, '@') === false) {
   $rule = 'exists:users,username';
}
else {
   $rule = 'exists:users,email;
}


$validator = Validator::make(
        array('username_or_email' => $username_or_email),
        array('username_or_email' => $rule)
    );