php - laravel中的路线重叠
问题描述
我有以下两条路线:
Route::name('frontend-')->group(function () {
Route::get('/{category}/{slug}', 'GetFrontendController@tourDetail')->name('tourDetail');
Route::get('/{pcatslug}/{pslug}','GetFrontendController@getPage')->name('page');
});
路线名称page
与路线名称重叠tourDetail
。当我尝试访问路由page
tourDetail
功能时,路由tourDetail
首先被声明。
我尝试将它们放在不同的命名组中并应用正则表达式模式仍然无法解决此问题。
我应用的正则表达式模式是:
Route::pattern('category', '[A-Za-z\d\-\_]+');
Route::pattern('slug','[A-Za-z\d\-\_]+');
Route::pattern('pcatslug', '[A-Za-z\d\-\_]+');
Route::pattern('slug','[A-Za-z\d\-\_]+');
我怎样才能克服这个路线重叠问题。请建议。
解决方案
这将不起作用,因为路由器模板指定了相同的一种模式。为确保路由器系统不会重新定义路由,您必须更改模式或将具有单独名称的静态部分添加到 URL,例如:
Route::get('categories/{category}/{slug}', 'GetFrontendController@tourDetail')->name('tourDetail');
Route::get('pcatslugs/{pcatslug}/{pslug}','GetFrontendController@getPage')->name('page');
推荐阅读
- google-cloud-firestore - Firestore 规则允许任何经过身份验证的用户写入子集合,但只有该子集合的所有者可以读取?
- python - 如何从数据框创建一维数组?
- c# - 为什么第二个 HttpClient.PostAsync 返回 500?
- parsing - 找出是否有BNF语法的理论流写作表达部分
- vb.net - VB .NET Microsoft.Owin.Hosting WebApp.Start 给出 nullReferenceException
- python - 线性回归 R 平方为 1.0
- html - laravel 5.8 引导程序在 Jquery 中不起作用
- ansible - 通过 Ansible 安装 Homebrew 卡住了
- flutter - 如何从 catchError 中的 Future.error 获取值?
- javascript - 在 React.js 中集成 PayPal 的 iframe 渲染错误