proshore/menu-management

基于数据库的 Laravel 后端菜单管理系统

v0.1.7 2018-09-26 07:35 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License StyleCI

基于 Bootstrap 的 Laravel 5.5 数据库菜单管理

此包将在您的后端创建一个菜单管理模块。菜单管理可以用于在数据库中动态存储菜单并在前端使用。现有三种类型的菜单:内部菜单、外部菜单和 CMS 页面菜单。

此包仅用于帮助构建基于数据库的菜单管理,可能存在一些未知的问题。如果您发现任何问题,请报告。

安装

  1. 使用 composer 安装此包。
composer require proshore/menu-management

Laravel 5.5 使用包自动发现,因此您不需要手动将包添加到 ServiceProvider。

  1. 发布配置文件。

  2. 运行迁移

php artisan migrate
  1. 为菜单创建种子文件。种子文件应创建菜单表的容器。它们可能是头部或底部。

术语

  • 菜单:菜单的主要容器,其中列出所有菜单项
  • 菜单项:容器内的实际菜单
  • 状态:激活/非激活
  • 目标组:定义哪些菜单应为哪些用户可见
  • 类型:不同类型的菜单。内部菜单、外部链接、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