在我的项目中,我有很多包含导航链接列表的视图。我把它作为一个视图分开,并使用@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”元素上添加“活动”...
答案 0 :(得分:3)
另一种选择:
<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>
答案 1 :(得分: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(&#39; menu&#39;)时,您可以传入一个可选参数来设置活动菜单项:
{{-- 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'])