首页 > 解决方案 > 在 Laravel 中的活动 url 上动态应用“活动”类,什么是干净和可重用的方式?

问题描述

对于以下网址:

我想在 Laravel 中动态地将“活动”类应用于用户导航,如下所示:

<ul>
    <li class="active"><a href="{{ route('users') }}">Users</a></li>
    <li class=""><a href="{{ route('pages') }}">Pages</a></li>
</ul>

在不使用第三方插件的情况下,干净且可重用的方法是什么?

标签: laravellaravel-5

解决方案


方法一:单行捷径解决方案

使用 {{ request()->is(' users ') ?'active' : '' }} 如本答案所述,如下所示:

<ul>
    <li class="{{ request()->is('*users*') ? 'active' : '' }}"><a href="{{ route('users') }}">Users</a></li>
    <li class="{{ request()->is('*pages*') ? 'active' : '' }}"><a href="{{ route('pages') }}">Pages</a></li>
</ul>

方法2:清洁和可重复使用的解决方案

您可以按照以下步骤创建和使用名为“active”的自定义帮助程序:

  1. 在你的类属性中添加 {{ active('partial-url') }}
<ul>
    <li class="{{ active('users') }}"><a href="{{ route('users') }}">Users</a></li>
    <li class="{{ active('pages') }}"><a href="{{ route('pages') }}">Pages</a></li>
</ul>
  1. 在您的应用程序目录中创建一个名为“helpers.php”的文件并添加此帮助函数
<?php
function active($partialUrl){
      return request()->is("*".$partialUrl."*") ? 'active' : '';
}
  1. 通过在 composer.json 文件中添加以下行,将 helpers.php 文件添加到自动加载
    ...
     "autoload": {
          ...
          "files": [
              ...
              "app/helpers.php",
          ],
          ...
    },
   ...

上面代码片段中的“...”表示可能有也可能没有其他一些代码行

  1. 通过运行以下命令转储自动加载程序
composer dump-autoload

推荐阅读