2015-04-02 93 views
2

在我的项目中,我有很多包含导航链接列表的视图。我将它作为视图分隔,并使用@include('menu')处理其他视图。但是,根据每个视图的,我想问一些类(造型)某些元素,我不知道该怎么做Laravel 5中的可重用视图布局

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> 

更多的解释:如果视图是产品经理,我要添加“活动”仅在第一个“礼”元素......

回答

2

如果可以建立你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 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>