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