对于使用Laravel 5.5 +的答案寻求者,找到此页面:
Route::namespace('Admin')->prefix('admin')->name('admin.')->group(function () {
Route::resource('users','UserController');
});
这些选项将为资源生成以下内容:
-
namespace()
将控制器命名空间设置为 \Admin\UserController
-
prefix()
将请求 URi 设置为 /admin/users
-
name()
将路由名称访问器设置为route('admin.users.index')
在DOT中,它不是拼写错误。name()
请让其他人知道这是否适用于Laravel 5.5之前的任何版本的评论,我将更新我的答案。
更新:
泰勒接受了我的PR,在5.5中正式记录了这一点:
https://laravel.com/docs/5.5/routing#route-group-name-prefixes
更新拉拉维尔 8
Laravel 8 中的新增功能,不推荐使用 in 路由配置,已从 Laravel 的标准配置中删除默认包装器。此更改将 Controller 命名空间与在对路由进行分组时必须考虑的命名空间分离,在注册路由时放弃要求可在组织控制器和路由时提供更大的自由度。namespace
namespace
RouteServiceProvider
namespace
使用Laravel 8,本文上半部分的原始示例现在将如下所示,使用对静态类名的自我引用:
use \App\Http\Controllers\Admin\{
UserController,
ProductController,
AnotherController,
}
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('users', UserController::class);
Route::resource('products', ProductController::class);
Route::resource('another', AnotherController::class);
});