是否有另一种更有效的方法来嵌套 laravel 8 中的前缀和名称前缀,而不需要使用那么多组?

Is there another, more efficient way to nest prefix and name prefix in laravel 8 that doesn't need to use so many groups?

我看到嵌套前缀和名称前缀的好方法,但这太冗长了。此外,对于很少的请求,它是可以接受的,但是当有很多请求时,创建组可能会出现问题。这是一个玩具示例。

Route::prefix('auth')->group(function () {
    Route::name('auth.')->group(function () {
        Route::get('login', [MainController::class, 'login'])->name('login');
        Route::get('register', [MainController::class, 'register'])->name('register');
    });
});

我试过了,但是失败了。

Route::name('auth.')->group(['prefix'=>'auth'], function () {
    Route::get('login', [MainController::class, 'login'])->name('login');
    Route::get('register', [MainController::class, 'register'])->name('register');
});

是否有另一种更有效的方法在 laravel 8 中嵌套前缀和名称前缀而不需要使用那么多组?

我正在使用 Laravel 8 Documentation 的路由组部分。

您可以在 group 函数中组合您的 prefixes、names 和 middlewares,这将稍微整理一下:

Route::group(['prefix' => 'auth', 'as' => 'auth.'], function () {
    Route::get('login', [MainController::class, 'login'])->name('login');
    Route::get('register', [MainController::class, 'register'])->name('register')
});

如果要在组上指定 middleware,只需将其添加到 group 函数的第一个参数的数组中即可。

Route::group(['prefix' => 'auth', 'as' => 'auth.', 'middleware' => [...]], function () {
    ...
});