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ホームビューにリダイレクトしていることです。私が間違っていることは何ですか?