这是我的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"命令,但仍然没有工作......
答案 0 :(得分:20)
您的类的命名空间必须与目录结构匹配。在这种情况下,您必须调整您的课程并添加Panel
namespace App\Http\Controllers\Panel;
// ^^^^^
use App\Http\Controllers\Controller;
class PanelController extends Controller {
/* some code here... */
}
答案 1 :(得分:7)
遵循三个简单的步骤
在命名空间
中附加文件夹名称namespace App\Http\Controllers\Panel;
添加"使用App \ Http \ Controllers \ Controller;"在类定义之前到控制器
namespace App\Http\Controllers\Panel;
use App\Http\Controllers\Controller;
在任何路径中调用控制器时添加附加的文件夹名称
Route::get('foo','Panel\PanelController@anyaction');
无需运行" composer dump-autoload"
答案 2 :(得分:1)
您可以使用子文件夹生成一个简单的控制器:
php artisan make:controller Panel\PanelController
它会自动使用目录创建适当的名称空间和文件。 并像之前提到的那样在路线中引用它:
Route::get('/some','Panel\PanelControllder@yourAction');
快乐的编码!