【问题标题】:Laravel 5 Route not Found in RouteServiceProvidor在 RouteServiceProvider 中找不到 Laravel 5 路由
【发布时间】:2015-05-23 04:33:57
【问题描述】:
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

以上是我在尝试运行 Artisan 时看到的错误。似乎问题与我的过滤器(我正在尝试从 Laravel 4 迁移到 5)和命名空间有关。我有两个命名空间,我希望所有这些过滤器都适用于:“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)

有什么想法吗?

【问题讨论】:

    标签: php laravel namespaces


    【解决方案1】:

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

    namespace App\Providers;
    

    您尝试使用具有相对类名引用的全局类 Route

    Route::filter('challenge_general_permission', function($route)
    

    当你这样做时,PHP 假定你想要类 App\Providers\Route。没有这样的课程——PHP 死了。你要么需要告诉 PHP 你想要全局类Route

    \Route::filter('challenge_general_permission', function($route)
    

    或将Route 导入当前命名空间

    namespace App\Providers;
    //...
    use Route;
    

    【讨论】:

      【解决方案2】:

      @AlanStorms 的回答完全正确,但我想补充一点,您甚至不必使用 Route 外观。特别是在这种情况下,您可以直接使用 $router 对象。顺便说一句:RouterRoute 门面的底层类。我会这样做,而不是你现在拥有的:

      public function boot(Router $router)
      {
          parent::boot($router);
      
          //Challenges
          $router->filter('challenge_general_permission', function($route)
      

      【讨论】:

        猜你喜欢
        • 2020-08-30
        • 2015-06-26
        • 2016-11-15
        • 2020-11-17
        • 2018-12-12
        • 2017-07-27
        • 2020-03-26
        • 2019-03-10
        • 1970-01-01
        相关资源
        最近更新 更多