You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在继承Laravel-Backpack布局的自定义视图中激活导航菜单项?

解决Posts导航菜单项添加active类的方法

针对你重写create()方法跳转到自定义视图后,无法自动给Posts导航菜单项添加active类的问题,有几种实用方案:

方案一:在自定义视图中手动标记菜单项为活跃状态

在你的自定义Blade视图里,继承布局后、定义content区块前,添加一段PHP代码手动设置对应菜单项的活跃状态:

@extends(backpack_view('blank'))

@php
    // 将名称为'posts'的菜单项设为活跃状态,需和你菜单配置里的item name一致
    backpack_menu()->setActiveItem('posts');
@endphp

@section('content')
 // 你的自定义内容
@endsection

方案二:在路由定义中绑定菜单标识

如果你的posts.create路由是自定义注册的,可以在路由定义时通过with()方法关联对应的菜单标识,让Backpack自动识别并添加active类:

// 假设自定义create方法改名为customCreate
Route::get('posts/create', [PostCrudController::class, 'customCreate'])
    ->name('posts.create')
    ->with('backpack_menu', 'posts');

注意:这里的'posts'要和你菜单配置中对应项的name字段完全匹配。

方案三:通过路由匹配手动添加类(不推荐,硬编码维护性差)

如果你需要自己渲染菜单,可以通过路由匹配判断,给对应菜单项手动添加active类:

@foreach(backpack_menu()->items as $item)
    <li class="nav-item {{ request()->routeIs('posts.*') || request()->routeIs('posts.create') ? 'active' : '' }}">
        <a href="{{ $item->url }}" class="nav-link">{{ $item->name }}</a>
    </li>
@endforeach

内容的提问来源于stack exchange,提问作者karl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 06:42:04