1

Laravel Authをカスタマイズしたい。管理者とユーザーを区別したい。デフォルトの users テーブルに、admin と user の 2 つのオプションを持つ列 role を追加しました。マニュアルによると、redirectToメソッドを定義しています。

class LoginController extends Controller
{
    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     */

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    protected function redirectTo()
    {
        if (Auth::user()->role == 'admin') {
            return 'admin/home';
        } else {
            return '/main';
        }
    }

    protected function show_admin_homepage()
    {
        return view('auth.admin_h');
    }

    protected function show_user_homepage()
    {
        return view('auth.user_h');
    }
}

ルート

Route::get('main', 'Auth\LoginController@show_user_homepage')->name('show_user_homepage');
Route::get('admin/home', 'Auth\LoginController@show_admin_homepage')->name('show_admin_homepage');

問題は、ユーザーまたは管理者としてログインしているときに、常にデフォルトのlaravelホームビューにリダイレクトしていることです。私が間違っていることは何ですか?

4

3 に答える 3