我有条件检查它是什么网址,以便我可以设置一个合适的标签类来激活 我有代码
`{{ Request::is('popular') || Request::is('/') || Request::is('category/*/popular') || Request::is('category/*') ? 'nav-active' : '' }}`
最后一个条件是错误的,例如当网址为http://localhost:8000/category/goodwin/new
时仍然是正确的,这是我不想要的。如何编写条件以检查category
之后是否有任何内容,但仅在/
之后
P.S。我还有new
和top posts
正常工作的其他条件
答案 0 :(得分:0)
您可以使用url()->current()
然后对其进行字符串分析。例如。使用preg_match和正则表达式,或者只计算斜杠数。
示例:
preg_match("/(.*)\/category\/(.*)\/(?!popular)(.*)/", url()->current());
正则表达式(.*)\/category\/(.*)\/(?!popular)(.*)
会检查网址是否与.../category/*/*
匹配,除非最终*
为popular
。
这将允许你这样做:
{{ (Request::is('popular') ||
Request::is('/') ||
Request::is('category/*/popular') ||
Request::is('category/*')) &&
preg_match("/(.*)\/category\/(.*)\/(?!popular)(.*)/", url()->current()) == 0
? 'nav-active' : '' }}
我会考虑远离三元运算符,因为它变得非常笨重。您可能还应该将此逻辑放在控制器中,并将变量传递给视图。