我正在使用 bootstrap 4 创建一个 laravel 应用程序。
我在 app.blade.php
中有我的主导航菜单。我有四个主要的 Blade ,关于、产品、联系方式和博客。
然后我需要根据当前页面更改菜单项事件类。由于菜单是从 app.blade.php
动态加载的,所以我必须在导航菜单中动态设置当前页面的事件类。
我所做的是在每个 Blade 中我定义了一个名为 $currentpage
的变量并将页面名称分配给它,假设它是 blog.blade.php
<?php $currentPage = 'blog';?>
@extends('layouts.app')
@section('content')
在 app.blade.php
中,
<li class="<?php if($currentPage =='blog'){echo 'nav-item active';}?>">
<a class="nav-link " href="{{ url('/blog') }}">{{ __('sentence.Blog') }}</a>
</li>
所以这可以正常工作..
但我想知道这样做是否正确,以及满足我的要求的其他可能方法是什么
最佳答案
除了在布局文件中定义一个$currentPage
变量,你可以使用
request()->is()
方法:
<li class="nav-item {{ request()->is('blog') ? 'active' : ''}}">
<a class="nav-link " href="{{ url('blog') }}">{{ __('sentence.Blog') }}</a>
</li>
is()
方法本质上采用请求的当前 url 路径并使用 Str::is()检查您传入的模式。
这样您只需检查当前 URL 是否与链接 URL 匹配,而不必在应用程序的其他地方定义额外的数据。
关于php - 在 laravel 中动态设置菜单项的事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61452808/