关于laravel中的身份验证

In laravel for login attempt I generally use something like this

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

Basically $usernameinput will check with email from my table.

I was thinking to do it in a different way, like there is email, username and password in my table. $usernameinput can be either email or username field in my table.

How can I Auth::attempt with a condition like:

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

I have read some articles but I didn't understand it can you explain it

Just do a check on both cases:

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

Assuming you don't allow @ in username, you can do it this way:

$data['password] = $password;

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


if Auth::attempt($data, true) {
   // The user is being remembered...
}