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
。
问题:
我正在尝试向我的路由组添加名称前缀:
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
。