路由类型资源 Laravel 8 中方法的默认参数

问题描述

我正在尝试根据文档向资源路由添加认参数:

Laravel doc

我的代码如下:

Route::resource('flats',FlatsController::class)->parameters([
    'index' => 'test_parameter','create' => 'test_parameter1','update' => 'test_parameter2'
]);

但不幸的是,在列出路由时,它总是像下面的屏幕截图一样:

routing list

请帮助指导我在哪一点上犯了错误

解决方法

您拥有以下内容:

| Methods   | route                               |
|-----------|-------------------------------------|
| POST      | panel/investments/flats             |
| GET/HEAD  | panel/investments/flats             |
| GET/HEAD  | panel/investments/flats/create      |
| GET/HEAD  | panel/investments/flats/{flat}      |
| PUT/PATCH | panel/investments/flats/{flat}      |
| DELETE    | panel/investments/flats/{flat}      |
| GET/HEAD  | panel/investments/flats/{flat}/edit |

由于唯一的参数是 {flat},因此您只能将其重命名为 per docs

Route::resource('flats',FlatsController::class)->parameters([
    'flat' => 'apartment'
]);

结果:

| Methods   | route                                    |
|-----------|------------------------------------------|
| POST      | panel/investments/flats                  |
| GET/HEAD  | panel/investments/flats                  |
| GET/HEAD  | panel/investments/flats/create           |
| GET/HEAD  | panel/investments/flats/{apartment}      |
| PUT/PATCH | panel/investments/flats/{apartment}      |
| DELETE    | panel/investments/flats/{apartment}      |
| GET/HEAD  | panel/investments/flats/{apartment}/edit |