Vol*_*rev 4 php navigation laravel laravel-5 bootstrap-4
我正在使用 bootstrap 4 创建一个 laravel 应用程序。
我的主导航菜单位于app.blade.php. 我有四个主要刀片,关于、产品、联系方式和博客。
然后我需要根据当前页面更改菜单项活动类。由于菜单是从动态加载的,因此app.blade.php我必须动态地在导航菜单中设置当前页面的活动类。
我所做的是在每个刀片中定义一个名为的变量,$currentpage并为其分配页面名称,假设它是blog.blade.php
<?php $currentPage = 'blog';?>
@extends('layouts.app')
@section('content')
Run Code Online (Sandbox Code Playgroud)
并在app.blade.php,
<li class="<?php if($currentPage =='blog'){echo 'nav-item active';}?>">
<a class="nav-link " href="{{ url('/blog') }}">{{ __('sentence.Blog') }}</a>
</li>
Run Code Online (Sandbox Code Playgroud)
所以这工作正常..
但我想知道这是正确的方法吗?还有哪些其他可能的方法可以满足我的要求
您可以使用以下方法,而不是$currentPage在布局文件中定义变量
request()->is():
<li class="nav-item {{ request()->is('blog') ? 'active' : ''}}">
<a class="nav-link " href="{{ url('blog') }}">{{ __('sentence.Blog') }}</a>
</li>
Run Code Online (Sandbox Code Playgroud)
该is()方法本质上采用请求的当前 url 路径,并使用Str::is()来检查您传入的模式。
这样,您只需检查当前 URL 是否与链接 URL 匹配,而无需在应用程序的其他位置定义额外的数据。