2014-11-14 4 views
0

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

if (Auth::attempt(array('email' => $usernameinput, 'password' => $password), true)) 
{ 
// The user is being remembered... 
} 

В принципе $ usernameinput будет проверять с электронной почтой от моего стола.

Я думал сделать это по-другому, например, есть электронная почта, имя пользователя и пароль в моей таблице. $ usernameinput может быть как по электронной почте, так и по имени пользователя в моей таблице.

Как я могу Auth :: попытка с условием, как:

(email==$usernameinput OR username==$usernameinput) AND password == $password 

Я прочитал несколько статей, но я не понимаю, что вы можете объяснить это

ответ

0

Просто сделайте проверку на обоих случаях :

if (Auth::attempt(array('email' => $usernameinput, 'password' => $password), true) || 
    Auth::attempt(array('username' => $usernameinput, 'password' => $password), true)) 
{ 
// The user is being remembered... 
} 
0

Предполагая, что вы не позволяют @ в имени пользователя, вы можете сделать это следующим образом:

$data['password] = $password; 

if (strpos($usernameinput, '@') === false) { 
    $data['username'] = $usernameinput; 
} 
else { 
    $data['email'] = $usernameinput; 
} 


if Auth::attempt($data, true) { 
    // The user is being remembered... 
} 
Смежные вопросы