Route::resource 绑定创建多个属性路由(即 projects/{projects})
Route::resource binding creates plural attribute routes (i.e. projects/{projects})
我正在尝试为系列设置 Route:resource
。
当我创建个人 get、post、修补和删除路由时,它按预期工作(例如 GET series/${serie}
)。
然而,当我使用 Route::resource 时,它会创建复数属性(例如 GET series/${series}
)。
在我关注的 laracast 中,它创建了单数(例如 GET projects/${project}
)。
我不知道我错过了什么。
有效:
Route::get('/series', 'SeriesController@index');
Route::get('/series/create', 'SeriesController@create');
Route::get('/series/{serie}', 'SeriesController@show');
Route::post('/series', 'SeriesController@store');
Route::get('/series/{serie}/edit', 'SeriesController@edit');
Route::patch('/series/{serie}', 'SeriesController@update');
Route::delete('/series/{serie}', 'SeriesController@destroy');
路由列表为:
GET|HEAD | series | App\Http\Controllers\SeriesController@index
POST | series | App\Http\Controllers\SeriesController@store
GET|HEAD | series/create | App\Http\Controllers\SeriesController@create
GET|HEAD | series/{serie} | App\Http\Controllers\SeriesController@show
PATCH | series/{serie} | App\Http\Controllers\SeriesController@update
DELETE | series/{serie} | App\Http\Controllers\SeriesController@destroy
GET|HEAD | series/{serie}/edit | App\Http\Controllers\SeriesController@edit
这行不通:
Route::resource('series', 'SeriesController');
并生成此路由列表:
GET|HEAD | series | App\Http\Controllers\SeriesController@index
POST | series | App\Http\Controllers\SeriesController@store
GET|HEAD | series/create | App\Http\Controllers\SeriesController@create
GET|HEAD | series/{series} | App\Http\Controllers\SeriesController@show
PATCH | series/{series} | App\Http\Controllers\SeriesController@update
DELETE | series/{series} | App\Http\Controllers\SeriesController@destroy
GET|HEAD | series/{series}/edit | App\Http\Controllers\SeriesController@edit
注意复数形式 {series}。为什么会这样?
"Series" 是单词的复数和单数,因此 Laravel 生成的路由非常好。
如果您查看 Laravel 的复数化助手,您甚至可以看到 "series" 被明确列为不可数:https://github.com/laravel/framework/blob/5.5/src/Illuminate/Support/Pluralizer.php#L49
我正在尝试为系列设置 Route:resource
。
当我创建个人 get、post、修补和删除路由时,它按预期工作(例如
GET series/${serie}
)。然而,当我使用 Route::resource 时,它会创建复数属性(例如
GET series/${series}
)。在我关注的 laracast 中,它创建了单数(例如
GET projects/${project}
)。
我不知道我错过了什么。
有效:
Route::get('/series', 'SeriesController@index');
Route::get('/series/create', 'SeriesController@create');
Route::get('/series/{serie}', 'SeriesController@show');
Route::post('/series', 'SeriesController@store');
Route::get('/series/{serie}/edit', 'SeriesController@edit');
Route::patch('/series/{serie}', 'SeriesController@update');
Route::delete('/series/{serie}', 'SeriesController@destroy');
路由列表为:
GET|HEAD | series | App\Http\Controllers\SeriesController@index
POST | series | App\Http\Controllers\SeriesController@store
GET|HEAD | series/create | App\Http\Controllers\SeriesController@create
GET|HEAD | series/{serie} | App\Http\Controllers\SeriesController@show
PATCH | series/{serie} | App\Http\Controllers\SeriesController@update
DELETE | series/{serie} | App\Http\Controllers\SeriesController@destroy
GET|HEAD | series/{serie}/edit | App\Http\Controllers\SeriesController@edit
这行不通:
Route::resource('series', 'SeriesController');
并生成此路由列表:
GET|HEAD | series | App\Http\Controllers\SeriesController@index
POST | series | App\Http\Controllers\SeriesController@store
GET|HEAD | series/create | App\Http\Controllers\SeriesController@create
GET|HEAD | series/{series} | App\Http\Controllers\SeriesController@show
PATCH | series/{series} | App\Http\Controllers\SeriesController@update
DELETE | series/{series} | App\Http\Controllers\SeriesController@destroy
GET|HEAD | series/{series}/edit | App\Http\Controllers\SeriesController@edit
注意复数形式 {series}。为什么会这样?
"Series" 是单词的复数和单数,因此 Laravel 生成的路由非常好。
如果您查看 Laravel 的复数化助手,您甚至可以看到 "series" 被明确列为不可数:https://github.com/laravel/framework/blob/5.5/src/Illuminate/Support/Pluralizer.php#L49