在RouteServiceProvidor中找不到Laravel 5 Route

Wea*_*ler 2 php namespaces laravel

PHP Fatal error:  Class 'App\Providers\Route' not found in /home/****/**********/app/Providers/RouteServiceProvider.php on line 28



  [Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'App\Providers\Route' not found
Run Code Online (Sandbox Code Playgroud)

以上是我试图运行Artisan时所看到的错误.似乎问题与我的过滤器(我试图从Laravel 4迁移到5)和Namespacing有关.我有两个命名空间,我希望所有这些过滤器适用于:"App\Http\Controllers\API\V1"和"App\Http\Controllers\API\V2",但不能为我的生活理解如何在RouteServiceProvidor文件中设置它.以下是从RSP.php到相关行的代码.

<?php namespace App\Providers;

use Illuminate\Routing\Router;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider {

    /**
     * This namespace is applied to the controller routes in your routes file.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @param  \Illuminate\Routing\Router  $router
     * @return void
     */
    public function boot(Router $router)
    {
        parent::boot($router);

        //Challenges
        Route::filter('challenge_general_permission', function($route)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ala*_*orm 8

您的PHP文件位于App\Providers命名空间中.

namespace App\Providers;
Run Code Online (Sandbox Code Playgroud)

您试图使用Route具有相对类名称引用的全局类.

Route::filter('challenge_general_permission', function($route)
Run Code Online (Sandbox Code Playgroud)

执行此操作时,PHP假定您需要该类App\Providers\Route.没有这样的类 - PHP死了.你要么告诉PHP你想要全局类Route

\Route::filter('challenge_general_permission', function($route)
Run Code Online (Sandbox Code Playgroud)

或导入Route到当前名称空间

namespace App\Providers;
//...
use Route;
Run Code Online (Sandbox Code Playgroud)