如果使用 Laravel 5.5+ 的答案查找者找到了这个页面:
Route::namespace('Admin')->prefix('admin')->name('admin.')->group(function () {
Route::resource('users','UserController');
});
这些选项将对
Resource产生以下结果:
namespace()
将控制器命名空间设置为\ Admin \ UserController
prefix()
将请求URI设置为/admin/users
name()
将路由名称访问器设置为route('admin.users.index')
在name()
中,点(DOT)是有意的,这不是一个打字错误。
如果这适用于Laravel 5.5之前的任何版本,请在评论中告知其他人,我将更新我的答案。
更新:
Taylor接受了我的PR以在5.5中正式记录此内容:
https://laravel.com/docs/5.5/routing#route-group-name-prefixes
更新LARAVEL 8
在Laravel 8中,路由配置中使用namespace
已被弃用,默认的namespace
包装程序已从Laravel的标准配置中删除。
这种变化使得控制器名称空间与分组路由无需考虑,取消注册路由时的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);
});
as
关键字,谢谢。这是最简洁的解决方案。 - JalalJaberi