如何在 Laravel 5.6 中检查 @if 语句中的当前 URL
Posted
技术标签:
【中文标题】如何在 Laravel 5.6 中检查 @if 语句中的当前 URL【英文标题】:How to check current URL inside @if statement in Laravel 5.6 【发布时间】:2018-12-09 11:49:16 【问题描述】:我正在使用 laravel 5.6 并试图检查我当前的 URL 是否在 @if
语句中。
我看到其他一些帖子说它可以像这样@if(Request:url() === 'url to check')
完成。但是我看到的那个特别的帖子是 Laravel 4 的解决方案。任何人都知道如何获取当前的 url 并放入 Laravel 5.6 的 @if
语句中吗?
示例
@if(Request::url() === '/dashboard/attendance/report')
<a href="#" class="btn btn-danger" target="_blank">Button</a>
@endif
【问题讨论】:
【参考方案1】:我会通过以下方式解决这个问题。
@if(str_contains(url()->current(), '/dashboard/attendance/report'))
<a href="#" class="btn btn-danger" target="_blank">Button</a>
@endif
str_contains()
函数检查字符串(参数#1)是否包含第二个字符串。我更喜欢这个函数,因为 Laravel url()
函数返回一个完整的 url,而你想检查 url 是否包含某个路径。
url()->current()
的文档可以在这里找到:
https://laravel.com/docs/5.6/urls#accessing-the-current-url
编辑:
一种确保/dashboard/attendance/report
位于当前网址末尾的方法,您可以使用以下内容:
@if(substr(url()->current(), -1) == '/dashboard/attendance/report'))
<a href="#" class="btn btn-danger" target="_blank">Button</a>
@endif
【讨论】:
【参考方案2】:您不应该检查 URL,而应该检查路由。我会这样做。
@if (request()->is('admin/myRoute'))
[do stuff]
@endif
【讨论】:
您将如何检查当前路线是否与路线相关。即 route()->startsWith('myRoute/')以上是关于如何在 Laravel 5.6 中检查 @if 语句中的当前 URL的主要内容,如果未能解决你的问题,请参考以下文章