Tak jarang kita menyertakan Username dan Email di form registrasi seperti ini
Email :
Username :
Password :
....
lalu setelah user sukses registrasi biasanya kita minta Login dengan menyertakan Username saja dan password. Namun tak jarang bisa menyertakan baik Username atau Email beserta password seperti ini :
Jadi user bisa login dengan Username atau email nya. Tips simple ini sebenarnya di PHP native atau di framewok yang lain juga bisa.
berikut cara simple nya di Laravel
#AuthController.php
public function doLogin(){
$username = Input::get('username');
$password = Input::get('password');
$field = filter_var($username, FILTER_VALIDATE_EMAIL) ? 'email':'username';
if(Auth::attempt(array($field => $username,'password' => $password)))
{
return Redirect::intended();
}
else
{
return Redirect::to('login')->with('error', 'Invalid username/email or password')
->withInput();
}
}//end of function
Form login nya cukup seperti biasa
Penjelasan :
perhatikan kode berikut :
if(Auth::attempt(array($field => $username,'password' => $password)))
Secara default Auth::attempt() membutuhkan (normalnya) 2 input-tan yakni username dan password . Kita hanya perlu membuat field username flexible saja .
filter_var($username, FILTER_VALIDATE_EMAIL) ? 'email':'username';
dengan method diatas field username telah kita buat dinamis dan otomatis nge-Cek apakah yang diinput itu email atau bukan.
Sekian Tips kali ini. Happy coding !!!