【问题标题】:Route to controller in subfolder in Laravel 5路由到 Laravel 5 子文件夹中的控制器
【发布时间】:2015-03-27 20:25:27
【问题描述】:

这是我的 routes.php:

Route::get('/', 'Panel\PanelController@index');

这是我的文件夹:

Http/
....Controllers/
................Panel/
....................../PanelController.php

这是我的控制器:

namespace App\Http\Controllers;

class PanelController extends Controller {

/* some code here... */

}

这是我得到的:

Class App\Http\Controllers\Panel\PanelController does not exist

我尝试了“composer dump-autoload”命令,但还是不行……

【问题讨论】:

    标签: php laravel controller laravel-5


    【解决方案1】:

    类的命名空间必须与目录结构相匹配。在这种情况下,您必须调整您的班级并添加Panel

    namespace App\Http\Controllers\Panel;
    //                             ^^^^^
    
    use App\Http\Controllers\Controller;
    
    class PanelController extends Controller {
    
    /* some code here... */
    
    }
    

    【讨论】:

    • 你又跑composer dump-autoload了吗?
    • 确定:/ Laravel 5 中可能发生了一些变化?
    • 糟糕,现在是另一个错误:找不到类 'App\Http\Controllers\Panel\Controller'
    • 啊哈,这更有意义.. 现在的问题是您的控制器正在扩展Controller,这是一个命名空间级别“向上”。只需添加use App\Http\Controllers\Controller; 即可导入
    • 哇,现在我有这个错误:FatalErrorException in 5d407ee96656111b417e8f98552f6c80 第 271 行:语法错误,文件意外结束
    【解决方案2】:

    遵循三个简单的步骤

    1. 在命名空间中附加文件夹名称

      namespace App\Http\Controllers\Panel;
      
    2. 添加“使用App\Http\Controllers\Controller;”到类定义之前的控制器

      namespace App\Http\Controllers\Panel;
      use App\Http\Controllers\Controller;
      
    3. 在任何路由中调用控制器时添加附加的文件夹名称

      Route::get('foo','Panel\PanelController@anyaction');
      

    无需运行“composer dump-autoload”

    【讨论】:

    • 只是小修正,删除面板前的\ - Route::get('foo','Panel\PanelController@anyaction');
    【解决方案3】:

    您可以生成带有子文件夹的控制器,如下所示:

    php artisan make:controller Panel\PanelController
    

    它会自动创建适当的名称空间和带有目录的文件。 并如前所述在路由中引用它:

    Route::get('/some','Panel\PanelControllder@yourAction');
    

    编码愉快!

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 2015-10-24
      • 2015-05-14
      • 2015-08-15
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      相关资源
      最近更新 更多