doc88 / flux-menu-control
Laravel应用程序中实现菜单访问控制的库。
1.0.0
2020-07-30 19:28 UTC
Requires
- php: >= 7.2.0
- doc88/flux-role-permission: ^1.0
This package is auto-updated.
Last update: 2024-09-29 05:55:48 UTC
README
用户菜单管理库。
需求
- Laravel >= 6.0
- Flux Role Permission >= 1.0.2
安装
- 在项目根目录下运行以下命令,将包添加到Laravel应用程序中
composer require doc88/flux-menu-control
- 在config/app.php文件中的providers列表中添加
'providers' => [ ... Doc88\FluxMenuControl\FluxMenuControlServiceProvider::class, ]
- 在项目根目录下运行以下命令发布新的提供者
php artisan vendor:publish
- 运行迁移
php artisan migrate
- 在您的User模型中添加以下行
use Doc88\FluxMenuControl\Traits\MenuMount; class User { use MenuMount; }
用法
Doc88\FluxMenuControl\Menu类
用于创建、删除、附加和移除菜单及权限的类。
- 创建菜单项
// Create a new Menu Item Menu::create([ 'module' => 'Label of Menu Item', // required 'slug' => 'menu-slug', // required 'icon' => 'menu-item-icon-class' // optional, 'parent' => 'parent-menu-item-slug' // optional ]); // Return (array): [ 'module' => 'Label of Menu Item', 'slug' => 'menu-slug', 'icon' => null, 'parent_id' => null ]
- 删除菜单项
// Remove a Menu Item Menu::remove('menu-slug'); // Return (bool) true or false
- 将权限附加到菜单项
// Attaching list-users permissions to menu-slug menu Menu::attachPermission('menu-slug', 'list-users'); // Return (bool) true or false
- 从菜单项中移除权限
// Dettaching list-users permissions to menu-slug menu Menu::dettachPermission('menu-slug', 'list-users'); // Return (bool) true or false
- 同步权限以生成用户的菜单
// Synchronizing Menu::sync($user); // Return (array) [ [ "module" => "Label of Menu Item", "slug" => "menu-slug", "icon" => null, ], ],
- 获取用户菜单
// Getting user's menu Menu::get($user); // Return (array) [ [ "module" => "Label of Menu Item", "slug" => "menu-slug", "icon" => null, ], ],
使用User模型
可以使用User类获取用户的菜单。
- 列出用户菜单
$user = User::find(1); // User's Permissions $user->getMenu(); // Return (array): [ [ "module" => "Label of Menu Item", "slug" => "menu-slug", "icon" => null, ], ],