Php 在laravel中动态设置菜单项的活动类

Php 在laravel中动态设置菜单项的活动类,php,laravel,laravel-5,bootstrap-4,navigation,Php,Laravel,Laravel 5,Bootstrap 4,Navigation,我正在使用Bootstrap4创建一个laravel应用程序 我的主导航菜单位于app.blade.php。我有四个主要的刀片,关于,产品,联系人和博客 然后我需要根据当前页面更改菜单项active class。由于菜单是从app.blade.php动态加载的,我必须在导航菜单中动态设置当前页面的活动类 我所做的是在每个刀片中定义一个名为$currentpage的变量,并将页面名称分配给它,假设它是blog.blade.php <?php $currentPage = 'blog';?&g

我正在使用Bootstrap4创建一个laravel应用程序

我的主导航菜单位于
app.blade.php
。我有四个主要的刀片,关于,产品,联系人和博客

然后我需要根据当前页面更改菜单项active class。由于菜单是从
app.blade.php
动态加载的,我必须在导航菜单中动态设置当前页面的活动类

我所做的是在每个刀片中定义一个名为
$currentpage
的变量,并将页面名称分配给它,假设它是
blog.blade.php

<?php $currentPage = 'blog';?>
@extends('layouts.app')

@section('content')
因此,这是正确的


但是我想知道这是正确的方法吗?还有什么其他可能的方法来满足我的要求呢
request()->is()
方法:

<li class="nav-item {{ request()->is('blog') ? 'active' : ''}}">
    <a class="nav-link " href="{{ url('blog') }}">{{ __('sentence.Blog') }}</a>
</li>
  • is()


    这样,您只需检查当前URL是否与链接URL匹配,而不必在应用程序中的其他位置定义额外的数据。

    您可以使用
    request()->is()
    方法:

    <li class="nav-item {{ request()->is('blog') ? 'active' : ''}}">
        <a class="nav-link " href="{{ url('blog') }}">{{ __('sentence.Blog') }}</a>
    </li>
    
  • is()


    这样,您只需检查当前URL是否与链接URL匹配,而不必在应用程序的其他地方定义额外的数据。

    在Laravel中动态设置菜单项的活动类,检查以下PHP刀片文件代码,以检查菜单项中的多数组段和设置活动类

    @php
        $segment1 = Request::segment(1);
        $pages = array('blog', 'account', 'profile', 'settings');
    @endphp
    <li class="@if(in_array($segment1, $pages)) active @endif">
        <a href="javascript: void(0);">
            <span>Blog</span>
        </a>
    </li>
    
    @php
    $SECTION1=请求::段(1);
    $pages=数组('blog'、'account'、'profile'、'settings');
    @endphp
    

  • 在Laravel中动态设置菜单项的活动类,检查下面的PHP刀片文件代码,以检查菜单项中的多个数组段设置活动类

    @php
        $segment1 = Request::segment(1);
        $pages = array('blog', 'account', 'profile', 'settings');
    @endphp
    <li class="@if(in_array($segment1, $pages)) active @endif">
        <a href="javascript: void(0);">
            <span>Blog</span>
        </a>
    </li>
    
    @php
    $SECTION1=请求::段(1);
    $pages=数组('blog'、'account'、'profile'、'settings');
    @endphp
    

  • 是的,我更喜欢这种方式,因为我在项目中使用了这种方式。这是正确的。我建议使用三元运算符:
    (条件)?真:假
    ;您也可以将会话用于页面,当特定页面在控制器中呈现时,您可以在会话中设置页面名称,这里的好处是您不需要为每个刀片文件设置页面名称。是的,我更喜欢这种方式,因为我在项目中使用了它。这是正确的。我建议使用三元运算符:
    (条件)?真:假
    ;您还可以将会话用于页面,当特定页面在控制器中呈现时,您可以在会话中设置页面名称,这样做的好处是您不需要为每个刀片文件设置页面名称。