laravel5.1のユーザ認証のIDをemailカラムからusernameカラムに変更する方法
手順その1、 Usersテーブルにusernameカラムを追加。
1 |
$table->string('username')->unique()->comment('email代わりのログインID'); |
手順その2、 App\Http\Controllers\Auth\AuthControllerに変数を追加
1 2 |
// ログインIDはemailカラムではなく、usernameカラムを使う protected $username = 'username'; |
手順その3、振り分け処理は、最初から実装済だったりする!
vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php
1 2 3 4 5 6 7 8 9 |
/** * Get the login username to be used by the controller. * * @return string */ public function loginUsername() { return property_exists($this, 'username') ? $this->username : 'email'; } |
手順その4、ログイン画面のログインIDを、emailからusernameに変更する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<form method="POST" action="/auth/login"> {!! csrf_field() !!} <div> メールアドレス <input type="email" name="email" value="{{ old('email') }}"> 以下のように変更する! ID <input type="text" name="username" value="{{ old('username') }}"> </div> <div> パスワード <input type="password" name="password" id="password"> </div> <div> <button type="submit">ログイン</button> </div> </form> |
これにて、ログインIDをemailからusernameに切替完了!