公開日:2022/11/7 最終更新日:2022/11/06

【Laravel】ログインする際に参照するフィールド名を変更する方法

カテゴリー: Laravel

今回はLaravel UIを利用して実装したログイン機能で参照するフィールド名を変更する方法を紹介する。

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = '/home';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

Laravel UIで生成されたLoginControllerにはuseでAuthenticatesUsersが呼び出されている。
LoginControllerを改造する時は、まずçの中身を見ることから始まる(と自分は思っている)。AuthenticatesUsersを見ているとこんなものがある。

/**
 * Get the login username to be used by the controller.
 *
 * @return string
 */
public function username ()
{
  return 'email';
}

このusername()関数でログインに利用するフィールドを使用している。こいつをオーバーライド(上書き)してやれば良い。たまにvendorファイルの中身をそのまま変更する輩がいるらしいがやめてくれ
何の為にuseで呼び出していると思っている? use先で同じ関数名の関数を作ってやれば良い。

public function username ()
{
  return 'name';
}

これでログインする際はnameフィールドを参照するようになる。

AuthenticatesUsersの中にはバリデーションについての記述もあるので、変更の必要があればLoginControllerでオーバーライドすることも出来る。


○参考サイト