Laravel路由相同的基本路径
在Larave 7上,我有路径前缀相同的路由:Laravel路由相同的基本路径,laravel,laravel-routing,Laravel,Laravel Routing,在Larave 7上,我有路径前缀相同的路由: /* |-------------------------------------------------------------------------- | Parking Routes |-------------------------------------------------------------------------- */ Route::resource('parkings', 'Ap
/*
|--------------------------------------------------------------------------
| Parking Routes
|-------------------------------------------------------------------------- */
Route::resource('parkings', 'Api\Parking\ParkingController');
Route::get('parkings/filters', 'Api\Parking\ParkingFilterController');
这样,parkings/filters
返回404错误
如果我颠倒路线的顺序:
Route::get('parkings/filters', 'Api\Parking\ParkingFilterController');
Route::resource('parkings', 'Api\Parking\ParkingController');
它工作正常,但有没有办法做一些更干净的事情?与限制
停车
路线一样?您的问题来自这样一个事实,即您的足智多谋的控制器使用GET路线停车/{parking}
,然后该路线匹配过滤器
,并优先于另一条路线
您可以从资源丰富的控制器中排除路由
Route::resource('parkings','Api\Parking\ParkingController')->除了([
"秀",,
]);
路线::get('parkings/filters','Api\Parking\ParkingFilterController');
完整的文档在这里
如果您希望使用过滤器进行特殊处理
,但仍然需要其他路径,您可以向路由器添加一个全局模式,该模式将匹配所有与{parking}
匹配的内容,除了过滤器
Route::pattern('parking','^(?!filters)([a-z0-9-!]+)$);
我认为引用控制器时也需要一个操作。好的,谢谢你的回答,事实是我需要显示
路线,是的,全局模式看起来不错,但我有很多路线。。。我会检查并验证你的答案