Php 从laravel中的routeserviceprovider创建路由时中间件不工作

Php 从laravel中的routeserviceprovider创建路由时中间件不工作,php,laravel,laravel-5,Php,Laravel,Laravel 5,从路由服务创建路由文件,提供并分配中间件“admin.auth”,该中间件在web.php中工作,提供admin用户的基本信息,但从custom.php返回auth false。admin.auth如何从路由服务提供商处工作 protected function mapWebRoutes2() { Route::group([ 'namespace' => $this->namespace, 'prefix'

从路由服务创建路由文件,提供并分配中间件“admin.auth”,该中间件在web.php中工作,提供admin用户的基本信息,但从custom.php返回auth false。admin.auth如何从路由服务提供商处工作

 protected function mapWebRoutes2()
    {
        Route::group([
            'namespace' => $this->namespace,
            'prefix' => 'custom',
            'middleware' => 'admin.auth'
        ], function ($router) {

            require base_path('routes/custom.php');
        });
    }

尝试复制api路由的现有示例。在您的示例中,类似于:

/**
 * Define the "custom" routes for the application.
 *
 * @return void
 */
protected function mapWebRoutes2()
{
    Route::prefix('custom')
        ->middleware(['admin.auth'])
        ->namespace($this->namespace)
        ->group(base_path('routes/custom.php'));
}

确保包含
web
中间件,否则默认身份验证将无法工作,因为会话等未启动:

protected function mapWebRoutes2()
{
    Route::group([
        'namespace' => $this->namespace,
        'prefix' => 'custom',
        'middleware' => ['web', 'admin.auth']
    ], function () {
        require base_path('routes/custom.php');
    });
}
或更短:

protected function mapWebRoutes2()
{
    Route::prefix('custom')
        ->middleware(['web', 'admin.auth'])
        ->namespace($this->namespace)
        ->group(base_path('routes/custom.php'));
}

如果这有助于你自由地接受答案。:)永远跟我走。在文件本身中看到的只是复制和使用#SOreadytohelpit不使用此方法。如果我在web.php中添加文件以生成不同的文件来路由,它的工作需要DIR/php';你为什么要那样做?在
路由
目录位置中创建所需的文件。然后,您可以在
RouteServiceProvider
中添加所有这些。问题解决了。我不止一次这样使用它,而且它工作得很好,而且它被很好地分离和解耦。我在这里说的这种方式失败了吗?