【问题标题】:Reusable view layout in Laravel 5Laravel 5 中的可重用视图布局
【发布时间】:2015-06-07 18:28:46
【问题描述】:

在我的项目中,我有很多包含导航链接列表的视图。我已经将它作为一个视图分开,并为其他视图使用 @include('menu') 。但是,根据每个视图,我想向某些元素询问一些类(用于样式),但我不知道该怎么做

menu.blade.php

<ul class="menu">
   <li class="menu-item active">
     <a href="#">Product Manager</a>
   </li>
   <li class="menu-item">
     <a href="#">Categories Manager</a>
   </li>
   <li class="menu-item">
     <a href="#">Order Manager</a>
   </li>     
</ul>

更多解释:如果视图是产品经理,我只想在第一个“li”元素上添加“活动”...

【问题讨论】:

    标签: laravel-5 blade reusability


    【解决方案1】:

    如果可以像下面这样构建你的 menu.blade.php:

    <?php
      $activeMenu = isset($activeMenu) ? $activeMenu : '';
      $menuItems = [
          'Product Manager' => '#',
          'Categories Manager' => '#',
          'Order Manager' => '#',
      ];
    ?>
    <ul class="menu">
      @foreach($menuItems as $name => $link)
        <li class="menu-item {{ $activeMenu === $name ? 'active' : ''}}">
          <a href="{{ $link }}">{{ $name }}</a>
        </li>
      @endforeach
    </ul>
    

    这允许您在单个数组中轻松定义菜单项,并且当它循环渲染每个菜单项时,它会检查是否需要添加活动类。

    在您的其他视图中,当您使用 @include('menu') 时,您可以传入一个可选参数来设置活动菜单项:

    {{-- Menu without any item active --}}
    @include('menu')
    
    {{-- Menu with Product Manager active --}}
    @include('menu', ['activeMenu' => 'Product Manager'])
    
    {{-- Menu with Order Manager active --}}
    @include('menu', ['activeMenu' => 'Order Manager'])
    

    【讨论】:

      【解决方案2】:

      另一种选择:

      <ul class="menu">
        <li class="menu-item @if (Request::is('product-manager*')) active @endif">
         <a href="product-manager">Product Manager</a>
       </li>
       <li class="menu-item @if (Request::is('categories-manager*')) active @endif">
        <a href="categories-manager">Categories Manager</a>
       </li>
       <li class="menu-item @if (Request::is('order-manager*')) active @endif">
        <a href="order-manager">Order Manager</a>
       </li>
      </ul>
      

      【讨论】:

        猜你喜欢
        • 2013-05-23
        • 1970-01-01
        • 2017-10-19
        • 2017-04-06
        • 2015-06-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多