关于控制器分类管理问题

请问,当我们创建控制器时,php artisan make:controller xxxxx,创建好的控制器默认是在Controllers文件夹下的,丁当项目很大时,会有很多的控制器,难免显得杂乱。如果在Controllers下新建文件夹进行管理,比如在Controllers下新建文件夹Admin,再在Admin下新建控制器AdminController.php,这时该如何在路由里访问这个控制器呢,网上找的方法都不行。

sqrtqiezi

举个栗子:

Route::get('/admin/action',  'Admin\AdminController@action');
leec

@sqrtqiezi 这个方法我在网上看到过,但是会报错,提示这个控制器不存在

perfectboook

创建的时候:

php artisan make:controller Admin/AdminController

这样就能找到了。或者现在运行下composer dump-autoload然后看下应该就能找到了。

leec

@perfectboook 谢谢,我知道原因了

namespace App\Http\Controllers\Api;

Controllers后面要加上文件夹名

perfectboook

@leec 使用

php artisan make:controller Admin/AdminController

创建的话,自动就给你加好命名空间了,不用手动设置的。

sodasix

可以使用 Route::group 的 namespace, 将同一个命名空间下的放到同一个分组下, 就可以不用写那么多前缀了

Route::group(['namespace' => 'Admin', 'prefix'=>'admin'], function () {
// Route::get('action',  'AdminController@action');
});

leec

@sodasix 赞赞赞