如何在Laravel 5.6中的@if语句中检查当前URL

时间:2018-06-30 14:59:43

标签: php laravel

我正在使用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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您不应检查URL,而应检查路由。我会这样。

@if (request()->is('admin/myRoute'))
[do stuff]
@endif