jminayat/laravel-menu

Laravel 的菜单管理

v1.0.3 2018-01-04 19:53 UTC

This package is not auto-updated.

Last update: 2024-09-21 03:14:42 UTC


README

jminayat/modules-laravel 是用于 Laravel 菜单管理的包。兼容 Laravel 版本 5.5。

安装

通过 composer 安装包。

composer require jminayat/laravel-menu

接下来,通过运行以下命令发布包配置文件:

php artisan vendor:publish --provider="JMinayaT\Menus\MenusServiceProvider"

创建菜单

要创建菜单,请从 Menu 门面调用创建方法。第一个参数是菜单名称,第二个参数是定义菜单项的回调函数。

Menu::create('test',function($menu){
    $menu->link('home/1','Home',['icon'=>'icon-home']);
});

创建多个菜单

如果您想创建多个菜单

Menu::create('test1',function($menu){
    $menu->link('home/1','Home',['icon'=>'icon-home']);
});

Menu::create('test2',function($menu){
    $menu->link('user','user');
});

菜单项

菜单链接

要创建链接菜单项,请使用 $menu->link()

Menu::create('test',function($menu){
    //           'url'   'title'     'attributes'
    $menu->link('home/1','Home',['icon'=>'icon-home']);
});

菜单路由

如果您已定义具有您命名的路由元素,请使用 $menu->route()

Menu::create('test',function($menu){
    //           'name rute'  'title'  'route parameters'    'attributes'
    $menu->route('cars.show', 'Cars', ['name'=>'toyota'], ['icon'=>'icon-car']);
});

菜单下拉菜单

要创建下拉菜单项,请使用 $menu->dropdown()

Menu::create('test',function($menu){
    //             'title'    'attributes'          'callback '
    $menu->dropdown('test',['icon'=>'icon-test'], function($item){
            $item->link('/test','test1',['icon'=>'fa-fa-icon']);
            $item->link('/test','test2',['icon'=>'fa-fa-icon']);
            $item->link('/test','test3');
    });
});

多级菜单下拉

要在一个下拉菜单中创建另一个下拉菜单,请使用 $item->dropdown()

Menu::create('test',function($menu){
    //             'title'    'attributes'          'callback '
    $menu->dropdown('test',['icon'=>'icon-test'], function($item){
            $item->link('/test','test1');
            
            $item->dropdown('test',['icon'=>'icon-test'], function($item){
                $item->link('/test','test2');
            });
    });
});

排序菜单项

您可以通过顺序号或字母顺序对菜单项进行排序。

默认情况下,配置文件中禁用了排序,您可以直接在配置文件中启用它或使用方法 $menu->activeOrder()

Menu::create('test',function($menu){
    $menu->activeOrder();
});

要设置顺序值,请调用方法 ->order()

Menu::create('test',function($menu){
    $menu->activeOrder(); //active order
    $menu->link('home/1','Home',['icon'=>'icon-home'])->order(1);
    $menu->link('contact','Contact',['icon'=>'icon-contact'])->order(3);
    $menu->link('pages','Pages',)->order(2);
});

要按字母顺序排序,请使用方法 $menu->setOrderBy($type)

Menu::create('test',function($menu){
    $menu->activeOrder();// active order
    $menu->setOrderBy('title'); // 'title' or 'number'
});

默认情况下,排序函数是禁用的。您可以在配置文件中启用排序函数。

return [
	'ordered' => true
];

默认排序类型为按数字排序。

return [
	'orderBy' => 'title'
];

渲染菜单

要渲染菜单,您可以使用 showget 方法。

Menu::get('test');

Menu::show('test');

编辑菜单

要编辑已创建的菜单,请使用 facade Menu 的 edit 方法。

Menu::edit('test',function($menu){
    $menu->link('home/1','Home',['icon'=>'icon-home']); // add link item
});

要编辑菜单中的项。

Menu::edit('test',function($menu){
    //            'search parameter'   'name'
    $menuItem = $menu->edit('title', 'test');
    $menuItem->title = 'hola';
});

要编辑下拉菜单中的元素。

Menu::edit('test',function($menu){
    //            'search parameter'   'name'
    $menuItem = $menu->edit('title', 'test'); //dropdown item
    $menuItem->link('/test2','testt2',['icon'=>'fa-fa-icon']); //add dropdown item
    //                   'search parameter'   'name'
    $subMenuItem = $menuItem->edit('title', 'test1'); //edit dorpdown item
    $subMenuItem->title = 'test3';
});

配置

要发布包配置,请使用以下命令

php artisan vendor:publish --provider="JMinayaT\Menus\MenusServiceProvider"

配置文件的内容如下

return [

    'aspect' => [
        
      'MtsysAdmin'  => 'JMinayaT\Menus\Aspects\MtsysAdmin\SidebarMenuAspect',
    ],

    'default_aspect' => 'MtsysAdmin',

    'ordered'   =>    false,

    'orderBy'   =>    'number',

];

aspect

这些是可用的预置菜单方面。

default_aspect

设置默认方面。

ordered

为所有菜单启用或禁用菜单项排序。

orderBy

设置默认排序类型为字母或数字。

许可证

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。