vmsouza/laravel-bootstrap-menu

该软件包最新版本(dev-main)没有提供许可证信息。

用于动态创建Bootstrap菜单的软件包。

dev-main 2024-04-03 18:27 UTC

This package is not auto-updated.

Last update: 2024-09-19 19:04:26 UTC


README

Laravel Bootstrap Menu是一个辅助工具,用于在Laravel中创建动态菜单。该助手已在SB Admin 2(SB Admin 2)上进行了临时测试。因此,请耐心等待进一步的开发。

安装

安装此扩展的首选方式是通过composer

运行

composer require vmsouza/laravel-bootstrap-menu:dev-master

或将以下内容添加到您的composer.json文件的require部分:

"vmsouza/laravel-bootstrap-menu": "dev-master"

使用方法

您可以在视图中使用此助手。它也支持blade模板。

面包屑结构

此助手由以下代码组成。

use vmsouza\LaravelMenu\Menu as Menu;

// ..........

$menu = new Menu; // class
// render menu
$menu->render(
        'options' => [...] // optional
        'items' => [...]  // required
    );

选项

这是一个可选参数。您可以在选项中传递以下参数:

  • divClass参数是Bootstrap菜单的div类。默认值为divClass是'sidebar-nav navbar-collapse'。您可以使用divClass参数更改您的div类。

  • ulClass参数是Bootstrap菜单的ul类。默认值为ulClass是'nav'。您可以使用ulClass参数更改您的ul类。

  • ulId参数是Bootstrap菜单的ul ID。默认值为ulId是'side-menu'。您可以使用ulId参数更改您的ul ID。

以下代码是一个示例。

$menu->render(
        'options' => [
            'ulId' => 'side-menu'
        ],
        'items' => [...]  // required
    );

菜单项

items参数是渲染菜单所必需的。items是一个数组。此助手支持三个菜单级别。您可以在items中传递以下参数:

  • label是一个字符串。此参数用于菜单的标签。此参数对于items是必需的
  • url是一个字符串。此参数用于菜单的链接。您不需要使用'url()'助手。此参数是必需的,除非此项目是下一级菜单(下拉菜单)的标题
  • icon是一个字符串。此参数用于菜单的图标。默认值为fa fa-circle-o。此参数是可选的,您可以使用icon参数更改菜单的图标
  • visible是一个布尔值。此参数用于菜单的可见性。默认值为visible是'true'。此参数是可选的,您可以使用visible参数更改菜单的可见性
  • items是一个数组。此参数用于添加您的菜单的另一级。您可以在此参数中使用所有items参数。如果items参数存在,则忽略url参数。

以下代码是面包屑项的完整示例。

use vmsouza\LaravelMenu\Menu as Menu;

$menu = new Menu; // class

$menu->render(
        'options' => [
            'ulId' => 'side-menu'
        ],
        'items' => [
            ['label' => 'Dashboard', 'icon' => 'fa fa-home', 'url' => '/'],
            [
                'label' => 'First Level 1',
                'visible' => true,
                'items' => [
                    ['label' => 'Second Level -1', 'url' => '/renja'],
                    ['label' => 'Second Level -2', 'url' => '/renja'],
                ]
            ],            
            [
                'label' => 'First Level 2',
                'items' => [
                    [
                        'label' => 'Second Level 1',
                        'visible' => true,
                        'items' => [
                            ['label' => 'Third Level 1', 'url' => '/ranwalrkpd'],
                            ['label' => 'Third Level 2', 'url' => '/ranwalrkpd'],
                        ]
                    ],
                ]
            ],
        ]
    );