rc1021 / laravel-menu-architect
后端菜单构建器
Requires
- php: >=7.0
- illuminate/support: ^5.5|^6|^7
This package is auto-updated.
Last update: 2024-09-18 02:44:00 UTC
README
在 Laravel 中快速简单地构建菜单的快捷方式
安装
composer require rc1021/laravel-menu-architect
如果您使用的是 Laravel 5.5,则无需编辑您的 config/app.php
文件,如果您使用的是 Laravel 的早期版本,请按照以下步骤操作
将 Laravel Menu 服务提供者添加到 providers
数组中的 config/app.php
文件。
'providers' => [ /* * Laravel Framework Service Providers... */ Illuminate\Foundation\Providers\ArtisanServiceProvider::class, Illuminate\Auth\AuthServiceProvider::class, Illuminate\Broadcasting\BroadcastServiceProvider::class, ... Rc1021\LaravelMenuArchitect\LaravelMenuArchitectServiceProvider::class, ... ],
在 config/app.php
文件的末尾添加 'MenuArct' => Rc1021\LaravelMenuArchitect\Facades\MenuArct::class
到 $aliases
数组
'aliases' => [ 'App' => Illuminate\Support\Facades\App::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, ... 'MenuArct' => Rc1021\LaravelMenuArchitect\Facades\MenuArct::class, ],
这将在 Laravel 中注册包并创建一个名为 MenuArct
的别名。
要使用自己的设置,请发布配置。
php artisan vendor:publish --provider="Rc1021\\LaravelMenuArchitect\\LaravelMenuArchitectServiceProvider"
入门指南
启动 Laravel 服务器
php artisan serve
并打开 http://127.0.0.1:8000/menu_arct 开始。
演示数据(seeder)
您可以首先对数据库进行初始化填充。
php artisan db:seed --class=MenuArchitectSeeder
最后,打开一个视图并添加
{!! menu_arct('admin') !!}
您的菜单将被创建并显示在页面上。
输出数据
您也可以通过 'array' 或 'json' 获取菜单数据格式,如下所示
$arr_menu = menu_arct('admin', '_array'); $json_menu = menu_arct('admin', '_json');
输出显示
自定义数据方法
您可以根据需要自定义一些方法来使用 $menu
、$menu->items
(与 menu_id 相关的关联)、$items
(父子关系)。
$customize_func = function ($menu) { // $menu: main menu modal. // $menu->items: items by menu_id. // $menu->buildTree(): get a hierarchical array data.(parent, children) $collection = collect($menu->items); $filtered = $collection->filter(function ($item, $key) { return $item['depth'] == 2 and isset($item['children']); }); return $filtered->all(); } $customize_data = menu_arct('admin', 'key', ['key' => $customize_func]);
使用自定义视图的输出显示
现在,您可以将视图添加到 resources/views/vendor/menu_architect/display
以渲染菜单。
如果您有一个名为 your_view.blade.php
的视图
// your_view.blade.php // $menu: main menu modal // $menu->items: items by menu_id // $items: Hierarchical array data(parent, children) <ul class="sidebar-menu tree" data-widget="tree"> @foreach ($items as $item) <li class="header {{$item['class']}}" style="{{empty($item['color'])?:'color:'.$item['color']}}">{{$item['label']}}</li> @if(isset($item['children'])) @each('menu_architect::menu.display.adminlte_list', $item['children'], 'item') @endif @endforeach </ul>
您可以通过 menu_arct('admin', 'your_view')
来渲染结果
如果您需要帮助
请使用 GitHub issues 提交所有问题和疑问,我将尽力帮助您。
贡献
如果您能改进或添加任何功能,请随时提交 pull requests。
致谢
许可协议
Laravel Menu Architect 是在 MIT 许可协议下免费分发的软件。