-1

我在一个项目中,该网站有两种类型的用户管理员用户。我做了一个中间件管理,则中间件工作正常,但是当我尝试登录的问题出现了:Laravel - 太多重定向问题

过多的重定向

路线

<?php 

Route::get('/', [ 
    'uses' => '[email protected]', 
    'as' => 'welcome' 
]); 
Route::get('/{form?}', [ 
    'uses' => '[email protected]', 
    'as' => 'index' 
]); 
Route::post('/exsist',[ 
    'uses' => '[email protected]', 
    'as' => 'login' 
]); 
Route::group(['middleware' => 'auth'],function(){ 
    Route::group(['prefix' => '/admin','middleware' => 'admin'],function(){ 
     Route::group(['prefix' => '/my'],function(){ 
      Route::get('/home', [ 
       'uses' => '[email protected]', 
       'as' => 'admin.home' 
      ]); 
     }); 
    }); 
    Route::group(['prefix' => '/'],function(){ 
     Route::get('/home', [ 
      'uses' => '[email protected]', 
      'as' => 'home' 
     ]); 
    }); 
}); 

and my 控制器

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 

use App\Http\Requests; 
use App\User; 
class UserController extends Controller 
{ 
     //main page 
    public function getIndex($form = ''){ 
      if(Auth::check()){ 
       if(Auth::user()->isAdmin()){ 
        return redirect()->route('admin.home'); 
       }else{ 
        return redirect()->route('home'); 
       } 
      } 
      return view('welcome', ['form' => $form]); 
     } 
     //main login (index page) 
     public function postLogin(Request $request){ 
      //validation 
      $this->validate($request,[ 
       'email' => 'required|email', 
       'pass' => 'required' 
      ]); 
      //authintecating user 
      if(Auth::attempt(['email'=>$request['email'], 'password'=>$request['pass']])){ 
       if(Auth::user()->isAdmin()){ 
        return redirect()->route('admin.home')->with(['success'=>'You have successfuly loged in as Admin!']); 
       }else{ 
        return redirect()->route('home')->with(['success'=>'You have successfuly loged in as User!']); 
       } 
      } 
      return redirect()->route('index')->with(['fail'=>'Wrong Email or Password!']); 
     } 
     public function getHome(){ 
      return view('home'); 
     } 
} 

为什么浏览器给我一个错误?

回答

2

尝试改变:

Route::get('/{form?}', [ 
'uses' => '[email protected]', 
'as' => 'index' 
]); 

要:

Route::get('/form/{form?}', [ 
'uses' => '[email protected]', 
'as' => 'index' 
]); 

我相信当你到 '/' 路线,在正在执行的路线 '/ {形式?}'。

+0

男人,你是一个天才(y)..我很尴尬,我怎么想到那个 –