2015-04-02 44 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>