2017-01-30 4 views
0

Я пытаюсь настроить свою роль при маршрутизации с использованием промежуточного программного обеспечения, но каждый раз, когда я вхожу в систему, он перенаправляет обратно мой вид входа.LARAVEL 5.4 ROLE ON MIDDLEWARE

вот моя маршрутизация

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'); 
} 

может у ребят HelpMe.

+0

Я не уверен, но вы должны проверить это, вы будете перенаправлены на 'home' после входа в систему по умолчанию. https://github.com/laravel/laravel/blob/master/app/Http/Middleware/RedirectIfAuthenticated.php – Chay22

ответ

0

Если логин успешно, то промежуточное программное обеспечение проверяет идентификатор, если идентификатор равен 1, тогда вы возвращаете следующий запрос ($next($request);). Ваше перенаправление никогда не происходит. Итак, следующий запрос обрабатывается вашей функцией adminDashboard в RouteController.

Вы должны вернуть свой вид в RouteController, как это:

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

и изменить свой маршрут к этому

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

Вы пропустили начальный слэш.

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'); 
} 

Далее следуют обычные функции