balajidharma / laravel-menu
Laravel 数据库菜单管理器
v2.0.2
2024-08-01 00:42 UTC
Requires
- illuminate/support: ^8.71|^9.0|^10.0|^11.0
README
为您的 Laravel 项目创建基于数据库的菜单和菜单项。
目录
安装
- 通过 Composer 安装包
composer require balajidharma/laravel-menu
- 使用以下命令发布迁移和 config/menu.php 配置文件:
php artisan vendor:publish --provider="BalajiDharma\LaravelMenu\MenuServiceProvider"
- 运行迁移
php artisan migrate
演示
"Basic Laravel Admin Penel" 快速入门套件包含 Laravel Menu。
创建菜单
use BalajiDharma\LaravelMenu\Models\Menu; Menu::create([ 'name' => 'Main Menu', 'machine_name' => 'main_menu', 'description' => 'Site main menu', ]);
创建菜单项
use BalajiDharma\LaravelMenu\Models\Menu; use BalajiDharma\LaravelMenu\Models\MenuItem; $menu = Menu::create([ 'name' => 'Main Menu', 'machine_name' => 'main_menu', 'description' => 'Site main menu' ]); $menu->menuItems()->create([ 'name' => 'Home', 'uri' => '/', 'enabled' => 1, 'parent_id' => null, 'weight' => 0 ]);
创建多个菜单项
$menu = Menu::create([ 'name' => 'Admin', 'machine_name' => 'admin', 'description' => 'Admin Menu', ]); $menu_items = [ [ 'name' => 'Dashboard', 'uri' => '/dashboard', 'enabled' => 1, 'weight' => 0, ], [ 'name' => 'Permissions', 'uri' => '/<admin>/permission', 'enabled' => 1, 'weight' => 1, ], [ 'name' => 'Roles', 'uri' => '/<admin>/role', 'enabled' => 1, 'weight' => 2, ], [ 'name' => 'Users', 'uri' => '/<admin>/user', 'enabled' => 1, 'weight' => 3, ], [ 'name' => 'Menus', 'uri' => '/<admin>/menu', 'enabled' => 1, 'weight' => 4, ] ]; $menu->menuItems()->createMany($menu_items);
菜单树
- 通过菜单 ID 获取菜单树
use BalajiDharma\LaravelMenu\Models\MenuItem; $items = (new MenuItem)->toTree($menu->id);
- 通过菜单机器名获取菜单树
use BalajiDharma\LaravelMenu\Models\Menu; $items = Menu::getMenuTree('admin');
菜单链接令牌
- 输入
<admin>
以将 admin 前缀添加到链接。 - 输入
<nolink>
以创建非链接菜单。
在 link
属性上获取生成的 URI
use BalajiDharma\LaravelMenu\Models\MenuItem; MenuItem::find(1)->link;