proshore / menu-management
基于数据库的 Laravel 后端菜单管理系统
v0.1.7
2018-09-26 07:35 UTC
Requires
- illuminate/support: 5.5.*
- spatie/eloquent-sortable: ^3.4
This package is auto-updated.
Last update: 2024-09-06 06:01:35 UTC
README
基于 Bootstrap 的 Laravel 5.5 数据库菜单管理
此包将在您的后端创建一个菜单管理模块。菜单管理可以用于在数据库中动态存储菜单并在前端使用。现有三种类型的菜单:内部菜单、外部菜单和 CMS 页面菜单。
此包仅用于帮助构建基于数据库的菜单管理,可能存在一些未知的问题。如果您发现任何问题,请报告。
安装
- 使用 composer 安装此包。
composer require proshore/menu-management
Laravel 5.5 使用包自动发现,因此您不需要手动将包添加到 ServiceProvider。
-
发布配置文件。
-
运行迁移
php artisan migrate
- 为菜单创建种子文件。种子文件应创建菜单表的容器。它们可能是头部或底部。
术语
- 菜单:菜单的主要容器,其中列出所有菜单项
- 菜单项:容器内的实际菜单
- 状态:激活/非激活
- 目标组:定义哪些菜单应为哪些用户可见
- 类型:不同类型的菜单。内部菜单、外部链接、CMS 页面
- 父级:定义父级菜单
发布
发布配置文件
php artisan vendor:publish --tag=config
发布视图
如果您想覆盖您的视图,请运行以下命令并进行必要的更改
php artisan vendor:publish --tag=views
文档
更改主布局路径。选择您的后端默认布局
'layout-extend-path' => 'layouts.layout'
默认堆栈以推送您的 JavaScript 文件
'script-stack' => 'scripts',
后端部分的名称前缀。如果没有前缀,则留空。
'prefix' => 'admin',
如果您需要使用额外的中间件,请在以下配置中追加中间件
'middleware' => ['web', 'auth'],
表格视图和表单视图的 Bootstrap 类
'table-class' => 'table table-striped table-hover', 'form-class' => 'menu-item',
您想要创建菜单的目标组。这些基本上是前端中的角色。基于此数组,您需要在前端中创建用于显示菜单的逻辑。在下面的示例中,0 => 所有,1 => 访客和 2 => 注册用户。在 facade 中使用此键作为 targetgroup。
'target-group' => ['All', 'Visitors', 'Registerd Users'],
为了使 CMS 页面链接到菜单,请添加完整的命名空间模型名称、表的主键以及要在下拉菜单中显示的页面名称。请确保 CMS 页面表也有 slug 字段。
'cms' => [ 'model' => 'App\Page', 'key' => 'id', 'value' => 'name', ],
要在前端中获取菜单数组,请使用可用的 facade。ContainerName 是菜单容器的名称,targetgroup 是角色的键。
MenuManagement::getMenuByContainer($containerName, $targetGroup)
贡献者
Babish Shrestha