使用中间件Laravel

时间:2015-09-21 05:19:40

标签: laravel authentication middleware

我已在我的应用中实现了中间件角色和权限控制,但我无法弄清楚为什么它只允许我定义一个' /'路线。第二个仍然指向' / home'即使我重写了AuthController redirectTo变量。

我的路线:

Route::group(['middleware' => 'role:user'], function()
{
 Route::get('/', 'ScoresController@user');

});

Route::group(['middleware' => 'role:admin'], function()
{
Route::get('/', 'PagesController@home');
});

在任何情况下,使用用户角色重定向到' / home'的身份验证用户之后。

1 个答案:

答案 0 :(得分:1)

像Simon说的那样,你的第二条路线将覆盖第一条路线,你可以做的是加载另一个控制器,通过redirect()将你重定向到另一个页面 或者将其写为路线本身。

看起来像这样:

Route::get('/', function(){
    $user = Auth::user();

    if($user->is('admin') {
        return redirect('admin');
    }else{
        return redirect('user');
    }
});

Route::get('admin', ['middleware' => 'role:admin', 'uses'=> 'PagesController@home']);

这只是众多可能中的一种,希望它可以帮助你。

相关问题