首页 > 解决方案 > 移动时无法识别 api 中的路由但在同一范围内

问题描述

当我从 api 路由中移动一条路由时,它消失了,我发现了一个未找到的错误。但它在同一条路线上移动::group

我已经尝试过 route:cache, route:clear, route config 但没有任何用处,它可以工作:

            Route::get('asistencias/all', 'AsistenciaController@all')->name('asistencias.all');
            Route::get('asistencias/{asistencia}', 'AsistenciaController@show')->name('asistencias.show');
            Route::put('asistencias/{asistencia}', 'AsistenciaController@update')->name('asistencias.update');
            Route::delete('asistencias/{asistencia}', 'AsistenciaController@destroy')->name('asistencias.delete'); 

但是这个小小的改变不会:

            Route::get('asistencias/{asistencia}', 'AsistenciaController@show')->name('asistencias.show');
            Route::put('asistencias/{asistencia}', 'AsistenciaController@update')->name('asistencias.update');
            Route::delete('asistencias/{asistencia}', 'AsistenciaController@destroy')->name('asistencias.delete');
            Route::get('asistencias/all', 'AsistenciaController@all')->name('asistencias.all'); 

标签: phplaravelroutes

解决方案


在第二个示例中,带有参数的路由asistencias/{asistencia}将匹配这样的路径,asistencias/all以便使用该路由,而不是定义为asistencias/all好像请求是 for的路径asistencias/all

Route::get('asistencias/{asistencia}', 'AsistenciaController@show')->name('asistencias.show');
Route::get('asistencias/all', 'AsistenciaController@all')->name('asistencias.all'); 

第一个匹配的路由被使用。

asistencia/all您的第一个示例定义了之前的路线asistencia/{asistencia}

Route::get('asistencias/all', 'AsistenciaController@all')->name('asistencias.all');
Route::get('asistencias/{asistencia}', 'AsistenciaController@show')->name('asistencias.show');

推荐阅读