Di post sebelumnya, kita berhasil login dengan menggunakan username. Di post kali ini, kita akan modifikasi sedikit lagi kode program, supaya bisa login tidak hanya menggunakan username, tapi bisa juga menggunakan email.
Kita akan langsung melakukan langkah ke-enam dari post sebelumnya, yaitu modifikasi form login.blade.php dan LoginController.php. Proses instalasi Laravel sampai membuat kolom username sudah dijelaskan di post sebelumnya.
Modifikasi login.blade.php
resources/views/auth/login.blade.php
Untuk form login.blade.php, kita hanya akan melakukan modifikasi pada labelnya saja :
1 2 3 |
<label for="username" class="col-md-4 col-form-label text-md-right"> {{ __('Username or Email') }} </label> |
Modifikasi LoginController.php
App/Http/Auth/RegisterController.php
Tambahkan satu function login di file ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public function login(Request $request) { $input = $request->all(); $this->validate($request, [ 'username' => 'required', 'password' => 'required', ]); $fieldType = filter_var($request->username, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; if(auth()->attempt(array($fieldType => $input['username'], 'password' => $input['password']))) { return redirect()->route('home'); }else{ return redirect()->route('login') ->with('error','Incorrect Email Address and Password.'); } } |
Jangan lupa untuk menambahkan use Request di bagian atas file :
1 |
use Illuminate\Http\Request; |
Cobalah untuk login menggunakan email atau username :
Berhasil!