Laravel 5 Laravel路由组中间件问题

Laravel 5 Laravel路由组中间件问题,laravel-5,laravel-routing,Laravel 5,Laravel Routing,我在中间件身份验证组中保留了一些laravel路由,如下所示: Route::group(['middleware'=>'auth'],function(){ Route::controller('Activities', 'ActivitiesController'); Route::get('foo','FooController@getFoo'); ..... }); 当我尝试登录访问这些页面时,我无法登录,url会一次又一次地重定向到登录页面。但如果我将

我在中间件身份验证组中保留了一些laravel路由,如下所示:

Route::group(['middleware'=>'auth'],function(){

    Route::controller('Activities', 'ActivitiesController');
    Route::get('foo','FooController@getFoo');
    .....
});
当我尝试登录访问这些页面时,我无法登录,url会一次又一次地重定向到登录页面。但如果我将构造函数用作:

public function __construct()
    {
        $this->middleware('auth');
    }

在这些控制器中,它工作得非常好。什么是路线组问题?

这对我来说很有效,在路线中

Route::group(['middleware'=>'auth'],function(){ 
  Route::controller('activities', 'ActivitiesController'); 
}); 
然后控制器

<?php namespace App\Http\Controllers; 

class ActivitiesController extends Controller { 
    public function getIndex() { 
         return 'you are in; 
    } 
} 

这对我很有效,在途中

Route::group(['middleware'=>'auth'],function(){ 
  Route::controller('activities', 'ActivitiesController'); 
}); 
然后控制器

<?php namespace App\Http\Controllers; 

class ActivitiesController extends Controller { 
    public function getIndex() { 
         return 'you are in; 
    } 
} 

路由有一个
::中间件
类,您可以使用该类:

Routes>web.php

Route::middleware(['auth'])->group(function(){
  Route::get('/activities', 'ActivitiesController@index');
});

您还可以使用
Route::resource()我更喜欢哪个。如果您不知道它是做什么的,这里有一些文档:

路由有一个
::中间件可以使用:

Routes>web.php

Route::middleware(['auth'])->group(function(){
  Route::get('/activities', 'ActivitiesController@index');
});
您还可以使用
Route::resource()我更喜欢哪个。如果您不知道它的作用,以下是web.php中的文档:

$roleGeneral = role1.'~'.role2.'~'.role3.'~'.role4;
Route::group(['middleware' => ['permission.role:'.$roleGeneral]], function() {})
在Kernel.php中:

protected $routeMiddleware = [...,
    'permission.role' => \App\Http\Middleware\CheckPermission::class,
];
在CheckPermission.php中:

public function handle($request, Closure $next, $role)
{
    $roleArr = explode('~', $role);
    $token = JWTAuth::getToken();
    $user = JWTAuth::toUser($token);
    $roleLogin = SysRoleModel::where('id', $user->role_id)->first();
    if (in_array($roleLogin['name'], $roleArr)){
        return $next($request);
    }else{
        return \Redirect::back()->withMessage('You are not authorized to access!');
    }
}
在web.php中:

$roleGeneral = role1.'~'.role2.'~'.role3.'~'.role4;
Route::group(['middleware' => ['permission.role:'.$roleGeneral]], function() {})
在Kernel.php中:

protected $routeMiddleware = [...,
    'permission.role' => \App\Http\Middleware\CheckPermission::class,
];
在CheckPermission.php中:

public function handle($request, Closure $next, $role)
{
    $roleArr = explode('~', $role);
    $token = JWTAuth::getToken();
    $user = JWTAuth::toUser($token);
    $roleLogin = SysRoleModel::where('id', $user->role_id)->first();
    if (in_array($roleLogin['name'], $roleArr)){
        return $next($request);
    }else{
        return \Redirect::back()->withMessage('You are not authorized to access!');
    }
}

在Activities Controller或FooController构造函数中是否有中间件?就像guest中间件一样?你是否修改了app/http/middleware/Authenticate?没有。我保留了对我有效的身份验证,在route
route::group(['middleware'=>'auth'],function(){route::controller('activities','ActivitiesController');})中然后控制器<代码>谢谢问题解决了。活动控制器或FooController构造函数中是否有中间件?就像guest中间件一样?你是否修改了app/http/middleware/Authenticate?没有。我保留了对我有效的身份验证,在route
route::group(['middleware'=>'auth'],function(){route::controller('activities','ActivitiesController');})中然后控制器<代码>感谢问题已解决。首先,Route::controller已被弃用,将在5.3(6月)中删除。(见反对意见)。其次,我有一个非常类似的情况,我在一个路由组中声明了我的中间件,它只是跳过它。有什么想法吗?谢谢你给我指点那些反对意见。关于你的类似问题,你能提出一个新的问题吗。请在第一次关闭时给我链接,Route::controller已被弃用,将在5.3(6月)中删除。(见反对意见)。其次,我有一个非常类似的情况,我在一个路由组中声明了我的中间件,它只是跳过它。有什么想法吗?谢谢你给我指点那些反对意见。关于你的类似问题,你能提出一个新的问题吗。你这样做的时候一定要给我链接