В моем api.php у меня есть эти маршруты.
Я могу запросить конечную точку: /api/v2/commodities/1
- этот запрос перенаправляется на APICommodityController@read
- это нормально!
Проблема возникает, когда я получаю GET-запрос /v2/commodities/categories/
. Я бы хотел, чтобы этот запрос был перенаправлен в группу маршрутов: «категории», но вместо этого Laravel воспринимает это как необязательный параметр в первой группе (~ ссылка «ЗДЕСЬ» в комментарии к коду).
Как мне это исправить?
Route::group( [ 'prefix' => 'v2' ], function() {
/**
* Commodity
*/
Route::group( [ 'prefix' => 'commodities' ], function() {
/**
* C: CREATE
*/
Route::post( '{id?}', 'API\v2\Commodity\APICommodityController@updateOrCreate' );
/**
* U: UPDATE
*/
Route::put( '{id}', 'API\v2\Commodity\APICommodityController@updateOrCreate' );
/**
* R: READ (HERE)
*/
Route::get( '{id?}', 'API\v2\Commodity\APICommodityController@read' );
/**
* D: DELETE
*/
Route::delete( '{id}', 'API\v2\Commodity\APICommodityController@delete' );
/**
* Commodity categories
*/
Route::group( [ 'prefix' => 'categories' ], function() {
/**
* C: CREATE
*/
Route::post( '{id?}', 'API\v2\CommodityCategories\APICommodityCategoriesController@updateOrCreate' );
/**
* U: UPDATE
*/
Route::put( '{id}', 'API\v2\CommodityCategories\APICommodityCategoriesController@updateOrCreate' );
/**
* R: READ
*/
Route::get( '{id?}', 'API\v2\CommodityCategories\APICommodityCategoriesController@read' );
/**
* D: DELETE
*/
Route::delete( '{id}', 'API\v2\CommodityCategories\APICommodityCategoriesController@delete' );
} );
} );