Reputation: 1604
I'm creating a user login form where user can use his/her username or email to login with Laravel, so on the backend, I want to validate if the user input is either an existed username or an existed email address, something like
$validator = Validator::make(
array('username_or_email' => $username_or_email),
array('username_or_email' => 'exists:users,username|exists:users,email)
);
but I doubt the above is the correct syntax for it, so how should I write my validator?
Upvotes: 0
Views: 1019
Reputation: 111829
Assuming you don't allow @
in username you could do it this way:
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)
);
Upvotes: 1