2017-01-30 5 views
0

미들웨어를 사용하여 라우팅 할 때 역할을 설정하려고하지만 시스템에 로그인 할 때마다 로그인보기로 리디렉션됩니다.LARAVEL 5.4 미들웨어의 역할

여기 여기

Route::group(['middleware' => ['auth','admin']],function(){ 
Route::get('dashboard','[email protected]'); 
    Route::get('admin',function(){ 
    return 'this is admin page'; 
    }); 
}); 

내 미들웨어

public function handle($request, Closure $next) 
{ 
    if(Auth::User()->id_role == 1){ 
     return $next($request); 
    } 
    return redirect::to('dashboard'); 
} 

U 할 수있는 사람 helpme 내 라우팅

입니다.

+0

잘 모르겠어요하지만 당신이 체크 아웃해야합니다, 당신은 리디렉션하고 일단 홈에 로그인하면 기본적으로. https://github.com/laravel/laravel/blob/master/app/Http/Middleware/RedirectIfAuthenticated.php – Chay22

답변

0

로그인이 성공하면 미들웨어는 ID를 확인하고 ID가 1이면 다음 요청 ($next($request);)을 반환합니다. 리디렉션이 발생하지 않습니다. 다음 요청은 adminDashboard 함수에 의해 RouteController에 처리됩니다.

public function adminDashboard() { 
    return view('your-path-to-your-dashboard'); 
} 

및 초기 슬래시를 놓치고있어이

Route::get('/', '[email protected]'); 
0

로 경로를 변경합니다

이 같은 RouteController에서보기를 반환해야합니다.

Route::group(['middleware' => ['auth','admin']],function(){ 
    Route::get('/dashboard','[email protected]'); 
    Route::get('/admin',function(){ 
return 'this is admin page'; 

}); })

아니면 컨트롤러 내부

이 같은 구조의 함수를 선언 :
public function __contstruct(){ 
    $this->middleware('auth'); 
} 

은 평소 함수로 이어