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 :
Sign in
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 !!!