laravel 命名资源无法正常工作并从头开始删除点

laravel named resources not working properly and removes the dots from the beginning

问题:

我正在尝试向我的路由组添加名称前缀:

Route::middleware(['auth:sanctum', 'verified'])->prefix('dashboard')->name('dashboard')->group(function () {
    
    Route::get('', [DashboardController::class, 'dashboard']);

    // other routes
    Route::resource('estates', EstateController::class, ['names' => '.estates' ])->except('show');
    // other routes
});

它删除了 .。 (应该是 dashboard.estates.index 等等...)

| POST      | dashboard/estates                       | dashboardestates.store          |
| GET|HEAD  | dashboard/estates                       | dashboardestates.index          |
| GET|HEAD  | dashboard/estates/create                | dashboardestates.create         |
| DELETE    | dashboard/estates/{estate}              | dashboardestates.destroy        |
| PUT|PATCH | dashboard/estates/{estate}              | dashboardestates.update         |
| GET|HEAD  | dashboard/estates/{estate}/edit         | dashboardestates.edit           |

+++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

测试 1:

如果我将一个数组选项传递给 names,它可以很好地处理点 .

Route::resource('estates', EstateController::class, ['names' => ['index' => '.estates.index'] ])->except('show');
| POST      | dashboard/estates                       | dashboardestates.store          |
| GET|HEAD  | dashboard/estates                       | dashboard.estates.index         |

+++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++

测试 2:

// web.php
Route::resource('estates', EstateController::class, ['names' => '.estates.' ])->except('show');

路线列表:

| POST      | dashboard/estates                       | dashboardestates..store         |
| GET|HEAD  | dashboard/estates                       | dashboardestates..index         |
| GET|HEAD  | dashboard/estates/create                | dashboardestates..create        |
| DELETE    | dashboard/estates/{estate}              | dashboardestates..destroy       |
| PUT|PATCH | dashboard/estates/{estate}              | dashboardestates..update        |
| GET|HEAD  | dashboard/estates/{estate}/edit         | dashboardestates..edit          |

预期:dashboard.estates..index,等等

得到:dashboardestates.index,等等

您可以将其全部简化为:

Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
    
    Route::get('/dashboard', [DashboardController::class, 'dashboard'])
        ->name('dashboard');
    
    Route::group(['prefix' => '/dashboard', 'as' => 'dashboard.'], function () {
        Route::resource('estates', EstateController::class)->except('show');
    });

});

上述命名路由的输出将是 dashboard.estates.{method}

这可以简化(即不重复或嵌套某些东西)仪表板的命名路线是 dashboard.index 而不是 dashboard