介绍一个好用的 Laravel Menu 建构包

一个便捷、快速、好用的 Laravel Menu 建构包

Laravel Menu Architect

下载安装

composer require rc1021/laravel-menu-architect

如果 Laravel 专案小于 5.5 请修改 config/app.php :

providers 阵列里加入以下内容

'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        ...
        Rc1021\LaravelMenuArchitect\LaravelMenuArchitectServiceProvider::class,
],

接着将 '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,
],

完成后就可以在程式中,使用 MenuArct 别名了。

接着,在终端机使用下列指令,将此包的组态档、视图、资料迁移档发布到专案中:

php artisan vendor:publish --provider="Rc1021\\LaravelMenuArchitect\\LaravelMenuArchitectServiceProvider"

开始使用

启动专案伺服器

php artisan serve

使用浏覧器打开 http://127.0.0.1:8000/menu_arct 就能开使编辑选单了。

Demo 的资料

您可以使用 seeder 加入 Demo 的资料

php artisan db:seed --class=MenuArchitectSeeder

接着,在任何一个视图中加入以下代码:

{!! menu_arct('admin') !!}

您指定的选单就会出现在画面中。

选单资料输出

您可以使用以下的代码取得 arrayjson 资料格式:

$arr_menu = menu_arct('admin', '_array');
$json_menu = menu_arct('admin', '_json');

视图输出

  • {!! menu_arct('admin', 'adminlte') !!}
  • {!! menu_arct('admin', 'bootstrap') !!}
  • {!! menu_arct('admin', 'nestable') !!}

Display Menu

操作指定的选单资料

您可以自订一些方法操作选单资料,以下的例子说明怎么取得第2级项目:

$customize_func = function ($menu)
{
    // $menu: 是主要选单的 model
    // $menu->items: 选单项目列表
    // $menu->buildTree(): 有阶层的项目阵列

    $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

// $menu: 是主要选单的 model
// $menu->items: 选单项目列表
// $items: 有阶层的项目阵列

<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') 显示选单项目的网页结构。

意见和想法

如果有什么建议、想法或问题,请到 issue 页面留下记录。

贡献

如果您可以改进或添加任何功能,请随时提交请求请求。

Credits

授权

  • Laravel Menu Architect *是根据MIT许可条款分发的免费软件。
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!