I am trying to set up a Route:resource
for Series.
When I create individual get, post, patch and delete Routes it works as expected (e.g. GET series/${serie}
).
However when I use Route::resource it creates plural attributes (e.g. GET series/${series}
).
In the laracast that I am following it creates the singular (e.g. GET projects/${project}
).
I can't figure out what I am missing.
This works:
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');
The route list is:
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
This doesn't work:
Route::resource('series', 'SeriesController');
and produces this route list:
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
Notice the plural form {series}. Why is this happening?
"Series" is the plural as well as the singular of the word, therefore the routes Laravel is generating are perfectly fine.
If you have a look into Laravels pluralizer helper, you can even see that "series" is explicitely listed as uncountable: https://github.com/laravel/framework/blob/5.5/src/Illuminate/Support/Pluralizer.php#L49