rc1021/laravel-menu-architect

后端菜单构建器

v1.0 2020-03-17 13:24 UTC

This package is auto-updated.

Last update: 2024-09-18 02:44:00 UTC


README

Total Downloads License

Laravel 中快速简单地构建菜单的快捷方式

Laravel Menu Architect

安装

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');

输出显示

Display Menu

自定义数据方法

您可以根据需要自定义一些方法来使用 $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]);

使用自定义视图的输出显示

Custom View

现在,您可以将视图添加到 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 许可协议下免费分发的软件。