php - 如何在 laravel 路由中创建不包括某些 slug 的 slug 路由?
问题描述
我目前有以下路线。
$router->get('/contact-us','HomeController@contactUs')->name('contact-us');
$router->get('/about','HomeController@about')->name('about');
现在,我想让一般页面可以按照以下路线访问,
$router->get('/{slug}','SomeController@about')->name('general-page');
但主要问题是联系我们并调用与 slug 路由匹配的页面和错误的控制器。有什么方法可以从一般页面路径中排除此类 slug。
解决方案
您可以将模式添加到您的路线,其中条款contact-us
和about
被排除在外,如下所示:
$router->get('/{slug}','SomeController@about')
->where('slug', '^((?!about|contact-us).)*$')
->name('general-page');
有关正则表达式的解释,请参见此处
这样,路由定义的顺序没有任何影响。
推荐阅读
- css - Highcharts:将光标指针添加到水平滚动
- go - 如何创建动态类型的变量
- javascript - 在 JS 中使用 svg 文件进行策略游戏
- java - 如何在我的 Java 代码中引发异常?
- jmeter - 集成 WireMock 和 JMeter 时拒绝本地主机连接
- java - 如何在 Spring 中从 .bindings 文件加载 JMS 配置
- google-slides-api - Google 幻灯片 API 返回 500 服务器错误
- c# - Kestrel 是否完全在进程中?
- machine-learning - 如何在做自己的训练任务时更新预训练的bert模型的词汇?
- c# - Windows 便携式设备 (WPD)、C#:如何在便携式设备上创建文件时设置“修改日期”