我有一个身份验证登录页面,该页面登录并重定向到home.blade.php
我需要在此处检查用户表中的user_type是admin还是Normal。如果user_type =='admin'重定向到主页,否则重定向到home_user页面。
Route.php
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/home_user', 'HomeController@index')->name('home_user');
或
protected function redirectTo() {
if (Auth::user()->user_type == 'admin')
return '/home';
else
return '/home_user';
}
答案 0 :(得分:1)
根据注释中的定义,您也可以使用中间件,但这可能是棘手的方法。您可以在loginController
中覆盖以下功能。
protected function authenticated(Request $request, $user)
{
if (Auth::user()->user_type == 'admin') {// do your magic here
return redirect('/home');
}
return redirect('/home_user');
}
有关参考,您可以访问here
答案 1 :(得分:0)
Below code, I have used for same. Try this.
use Redirect;
protected function authenticated($request, $user)
{
if($user->is_admin == '1') {
return Redirect::to('home');
}elseif ($user->is_admin == '2') {
Auth::logout();
return Redirect::to('/admin/login');
}else{
return Redirect::to('studentDashboard');
}
}
答案 2 :(得分:0)
您已经解决了问题,但是您的代码中有1个错误。 在laravel中,为了重定向,您需要返回redirect()-> to()或redirect()-> route()函数。您需要做的就是用以下代码替换代码:
protected function redirectTo() {
if (auth()->user()->user_type == 'admin')
return redirect()->route('home');
else
return redirect()->route('home_user');
}
答案 3 :(得分:0)
从authenticated
特征中覆盖现有的AuthenticatesUsers
方法。
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
if (Auth::user()->user_type == 'admin')
return redirect('/home');
else
return redirect('/home_user');
}
参考:authenticated
方法