RouteGroup 中的错误路线 Laravel 7
Wrong Route in RouteGroup Laravel 7
我在 api.php
中定义了一些 RoteGroup
Route::group(['prefix' => 'galleries'], function () {
Route::get('/', 'GalleriesController@index');
Route::get('/{id}', 'GalleriesController@show');
Route::post('/', 'GalleriesController@store');
Route::post('/{id}', 'GalleriesController@update');
Route::delete('/{id}', 'GalleriesController@delete');
});
Route::group(['prefex'=>'files'],function(){
Route::get('/', 'FilesController@index');
Route::get('/{id}', 'FilesController@show');
Route::post('/', 'FilesController@store');
Route::delete('/{id}', 'FilesController@delete');
});
Route::group(['prefix' => 'brands'], function () {
Route::get('/', 'BrandsController@index');
Route::get('/{id}', 'BrandsController@show');
Route::post('/', 'BrandsController@store');
Route::post('/{id}', 'BrandsController@update');
Route::delete('/{id}', 'BrandsController@delete');
});
当我调用 /api/brands
时,Laravel 本身调用 /api/files/{id}
并将品牌作为 id 参数传递。我清除了路由缓存和应用程序缓存,但它不起作用。
我的route:list
命令如下:
+--------+----------+--------------------+-----------------------------+-------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+--------------------+-----------------------------+-------------------------------------------------+------------+
| | GET|HEAD | api | generated::t71BZCrrwrUEipSw | App\Http\Controllers\FilesController@index | api |
| | POST | api | generated::aShgozBu0aAJb5Oh | App\Http\Controllers\FilesController@store | api |
| | GET|HEAD | api/brands | generated::3aUm0HLF9QQRczyA | App\Http\Controllers\BrandsController@index | api |
| | POST | api/brands | generated::V58YTIOhzv62STxe | App\Http\Controllers\BrandsController@store | api |
| | GET|HEAD | api/brands/{id} | generated::SuOaq2tKeDBAWcKH | App\Http\Controllers\BrandsController@show | api |
| | POST | api/brands/{id} | generated::Ij9a3h9rjPTJtrl6 | App\Http\Controllers\BrandsController@update | api |
| | DELETE | api/brands/{id} | generated::h9fZYI1jripojkLm | App\Http\Controllers\BrandsController@delete | api |
| | GET|HEAD | api/galleries | generated::UGeFE22cHyQVcjCS | App\Http\Controllers\GalleriesController@index | api |
| | POST | api/galleries | generated::oKqS94qAO9isKmCs | App\Http\Controllers\GalleriesController@store | api |
| | GET|HEAD | api/galleries/{id} | generated::mtUddNdRZr9olMHb | App\Http\Controllers\GalleriesController@show | api |
| | POST | api/galleries/{id} | generated::DD3hLUdSswKYlXse | App\Http\Controllers\GalleriesController@update | api |
| | DELETE | api/galleries/{id} | generated::QTxRv04TlN24QgWO | App\Http\Controllers\GalleriesController@delete | api |
| | GET|HEAD | api/{id} | generated::kt66p66Ao0pBlENo | App\Http\Controllers\FilesController@show | api |
| | DELETE | api/{id} | generated::9C7SNWSa1JbTtS1p | App\Http\Controllers\FilesController@delete | api |
+--------+----------+--------------------+-----------------------------+-------------------------------------------------+------------+
我该如何解决?
您的路线定义中有错字。这里:
Route::group(['prefex'=>'files'],function(){
[...]
});
将其从 'prefex' 更改为 'prefix':
Route::group(['prefix'=>'files'],function(){
[...]
});
我在 api.php
中定义了一些 RoteGroupRoute::group(['prefix' => 'galleries'], function () {
Route::get('/', 'GalleriesController@index');
Route::get('/{id}', 'GalleriesController@show');
Route::post('/', 'GalleriesController@store');
Route::post('/{id}', 'GalleriesController@update');
Route::delete('/{id}', 'GalleriesController@delete');
});
Route::group(['prefex'=>'files'],function(){
Route::get('/', 'FilesController@index');
Route::get('/{id}', 'FilesController@show');
Route::post('/', 'FilesController@store');
Route::delete('/{id}', 'FilesController@delete');
});
Route::group(['prefix' => 'brands'], function () {
Route::get('/', 'BrandsController@index');
Route::get('/{id}', 'BrandsController@show');
Route::post('/', 'BrandsController@store');
Route::post('/{id}', 'BrandsController@update');
Route::delete('/{id}', 'BrandsController@delete');
});
当我调用 /api/brands
时,Laravel 本身调用 /api/files/{id}
并将品牌作为 id 参数传递。我清除了路由缓存和应用程序缓存,但它不起作用。
我的route:list
命令如下:
+--------+----------+--------------------+-----------------------------+-------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+--------------------+-----------------------------+-------------------------------------------------+------------+
| | GET|HEAD | api | generated::t71BZCrrwrUEipSw | App\Http\Controllers\FilesController@index | api |
| | POST | api | generated::aShgozBu0aAJb5Oh | App\Http\Controllers\FilesController@store | api |
| | GET|HEAD | api/brands | generated::3aUm0HLF9QQRczyA | App\Http\Controllers\BrandsController@index | api |
| | POST | api/brands | generated::V58YTIOhzv62STxe | App\Http\Controllers\BrandsController@store | api |
| | GET|HEAD | api/brands/{id} | generated::SuOaq2tKeDBAWcKH | App\Http\Controllers\BrandsController@show | api |
| | POST | api/brands/{id} | generated::Ij9a3h9rjPTJtrl6 | App\Http\Controllers\BrandsController@update | api |
| | DELETE | api/brands/{id} | generated::h9fZYI1jripojkLm | App\Http\Controllers\BrandsController@delete | api |
| | GET|HEAD | api/galleries | generated::UGeFE22cHyQVcjCS | App\Http\Controllers\GalleriesController@index | api |
| | POST | api/galleries | generated::oKqS94qAO9isKmCs | App\Http\Controllers\GalleriesController@store | api |
| | GET|HEAD | api/galleries/{id} | generated::mtUddNdRZr9olMHb | App\Http\Controllers\GalleriesController@show | api |
| | POST | api/galleries/{id} | generated::DD3hLUdSswKYlXse | App\Http\Controllers\GalleriesController@update | api |
| | DELETE | api/galleries/{id} | generated::QTxRv04TlN24QgWO | App\Http\Controllers\GalleriesController@delete | api |
| | GET|HEAD | api/{id} | generated::kt66p66Ao0pBlENo | App\Http\Controllers\FilesController@show | api |
| | DELETE | api/{id} | generated::9C7SNWSa1JbTtS1p | App\Http\Controllers\FilesController@delete | api |
+--------+----------+--------------------+-----------------------------+-------------------------------------------------+------------+
我该如何解决?
您的路线定义中有错字。这里:
Route::group(['prefex'=>'files'],function(){
[...]
});
将其从 'prefex' 更改为 'prefix':
Route::group(['prefix'=>'files'],function(){
[...]
});