为应用快速生成导航菜单的扩展包怎么设置(为应用快速生成导航菜单的扩展包是什么)

lxf2023-11-21 16:50:01

几乎每个网站都有导航菜单。生成这些HTML导航菜单看似简单,但随着菜单数量的增加,会变得越来越麻烦:不仅需要渲染一些基本的HTML,更多的时候,还需要管理哪些菜单当前是活动的。如果菜单有子菜单,您也希望激活子菜单的父菜单。更何况有时候还需要在一些菜单项之间插入HTML。

为此,我编写了一个扩展包(GitHub地址:https://GitHub . com/spatie/laravel-menu),提供了一个简单优雅的API,文档完整丰富。在这里,我将简要地向您介绍它的用法。

虽然这个扩展包是独立于框架的,但是在这里我们将其设置为在Laravel应用程序中使用。

首先,我们使用Composer安装这个扩展:

composer require spatie/laravel-menu

然后在config/app.php的providers和aliases中注册服务提供者和facade:

// config/app.php'providers' => [ // ... Spatie\Menu\Laravel\MenuServiceProvider::class,],'aliases' => [ // ... 'Menu' => Spatie\Menu\Laravel\MenuFacade::class,],

接下来,我们将使用它来生成一个HTML导航菜单。

假设我们想生成这样一个菜单:

  • 主页
  • 关于
  • 下面是它的实现代码:

    $menu = Menu::new() ->add(Link::to('/', 'Home')) ->add(Link::to('/about', 'About'));

    然后我们可以使用render方法在视图中显示菜单:

    // in a blade viewHere is the menu: {!! $menu !!}

    让我们试着生成一个更复杂的菜单:

  • 介绍
  • 要求
  • 安装和设置
  • 基本用法
  • 你的第一份菜单
  • 使用项目
  • 添加子菜单
  • 是的,这是文档界面的导航菜单。请注意,每个二级子菜单前都有一个标题。相应的生成代码如下:

    Menu::new() ->add(Menu::new() ->link('/introduction', 'Introduction') ->link('/requirements', 'Requirements') ->link('/installation-setup', 'Installation and Setup') ) ->add(Menu::new() ->prepend('

    基本用法

    ') ->prefixLinks('/basic-usage') ->link('/your-first-menu', 'Your First Menu') ->link('/working-with-items', 'Working With Items') ->link('/adding-sub-menus', 'Adding Sub Menus') );

    如果希望激活菜单项,可以调用setActive方法:

    $menu = Menu::new() ->add(Link::to('/', 'Home')) ->add(Link::to('/about', 'About')->setActive());

    手动设置菜单项激活非常烦人。在大多数情况下,更合适的方法是让代码自己判断哪些菜单项被激活:

    $menu = Menu::new() ->add(Link::to('/', 'Home')) ->add(Link::to('/about', 'About')->setActive()); ->setActiveFromRequest();

    除了指定链接,您还可以灵活地使用其他方法来指向菜单项:

    Menu::new() ->url('/', 'Home') ->route('contact', 'Contact') ->action('AcmeController@detail', 'Acme');

    这个扩展包里还有很多其他有用的方法,比如属性操作、附加内容、宏支持等。请参考/d/file/04/j421u4qrfkn17828

    声明:本文为翻译。请看这里的原文。

    adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!