路由到 Laravel 5 子文件夹中的控制器
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29309615/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Route to controller in subfolder in Laravel 5
提问by Olivier Zoletti
This is my routes.php:
这是我的routes.php:
Route::get('/', 'Panel\PanelController@index');
This is my folders:
这是我的文件夹:
Http/
....Controllers/
................Panel/
....................../PanelController.php
This is my Controller:
这是我的控制器:
namespace App\Http\Controllers;
class PanelController extends Controller {
/* some code here... */
}
This is what I get:
这就是我得到的:
Class App\Http\Controllers\Panel\PanelController does not exist
I tried the "composer dump-autoload" command but still not working...
我尝试了“composer dump-autoload”命令,但仍然无法正常工作......
回答by lukasgeiter
The namespace of your class has to match the directory structure. In this case you have to adjust your class and add Panel
类的命名空间必须与目录结构相匹配。在这种情况下,您必须调整您的班级并添加Panel
namespace App\Http\Controllers\Panel;
// ^^^^^
use App\Http\Controllers\Controller;
class PanelController extends Controller {
/* some code here... */
}
回答by alex t
Follow three simple steps
遵循三个简单的步骤
append the folder name in the namespace
namespace App\Http\Controllers\Panel;
Add "use App\Http\Controllers\Controller;" to the controller before the class definition
namespace App\Http\Controllers\Panel; use App\Http\Controllers\Controller;
Add the appended folder name when invoking the controller in any route
Route::get('foo','Panel\PanelController@anyaction');
在命名空间中附加文件夹名称
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');
There is no need to run "composer dump-autoload"
无需运行“composer dump-autoload”
回答by Mikhail.root
You can generate a controller with a subfolder as simple as:
您可以生成一个带有子文件夹的控制器,如下所示:
php artisan make:controller Panel\PanelController
It automatically creates proper namespaces and files with directory. And reference it in routes just as mentioned before:
它会自动创建适当的命名空间和带有目录的文件。并在前面提到的路由中引用它:
Route::get('/some','Panel\PanelControllder@yourAction');
Happy codding!
快乐编码!