2014-11-06 6 views
0

Я создаю форму для входа в систему, где пользователь может использовать свое имя пользователя или адрес электронной почты для входа в систему с Laravel, поэтому на бэкэнд я хочу проверить, является ли пользовательский ввод либо существующим имя пользователя или адрес электронной почты, существует что-то вродеПроверка правильности проверки Laravel для нескольких полей

$validator = Validator::make(
     array('username_or_email' => $username_or_email), 
     array('username_or_email' => 'exists:users,username|exists:users,email) 
    ); 

, но я сомневаюсь, что выше правильный синтаксис для этого, так как я должен написать свой валидатор?

ответ

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) 
    ); 
+0

Не знаю, я мог настроить правила валидатора, спасибо! – dulan

Смежные вопросы