laravel - Laravel:如何检查路线是否在斜线后不包含任何内容
问题描述
我有一个条件来检查它是什么 URL,以便我可以将适当的选项卡类设置为处于活动状态。
我有代码
`{{ Request::is('popular') || Request::is('/') || Request::is('category/*/popular') || Request::is('category/*') ? 'nav-active' : '' }}`
最后一个条件是错误的,例如当 URLhttp://localhost:8000/category/goodwin/new
仍然正确时,这是我不想要的。我怎样才能写一个条件来检查是否有任何东西,category
但只有在一个之后/
PS我有其他条件new
并且top posts
可以正常工作
解决方案
您可以使用url()->current()
然后对其进行字符串分析。例如,使用 preg_match 和正则表达式,或者简单地计算斜杠的数量。
例子:
preg_match("/(.*)\/category\/(.*)\/(?!popular)(.*)/", url()->current());
正则表达式(.*)\/category\/(.*)\/(?!popular)(.*)
检查 URL 是否匹配.../category/*/*
,除了 final*
是popular
.
这将允许您执行以下操作:
{{ (Request::is('popular') ||
Request::is('/') ||
Request::is('category/*/popular') ||
Request::is('category/*')) &&
preg_match("/(.*)\/category\/(.*)\/(?!popular)(.*)/", url()->current()) == 0
? 'nav-active' : '' }}
我会考虑远离三元运算符,因为它变得非常庞大。您可能还应该将此逻辑放在控制器中,然后将变量传递给视图。
推荐阅读
- reactjs - 如果我在 next.js 中使用 Router.push() 导航,我得到: TypeError: products.map is not a function
- windows - 为什么 OpenCV 4.5.2 没有构建应用程序
- javascript - How to delete an image in array of images in javascript while maintaining current image list on browser screen?
- python - Python - Never Ending Multiple While Loops Interferring with Other Definitions
- c++ - What does .template do?
- c++ - 在向量中复制二叉树
- javascript - How can I make this function take dynamic values?
- windows - (ParseError at [row, col]: [8,46]
- opencl - pyopencl - 如何使用泛型类型?
- shell - Zsh 导出忽略引号和反斜杠