一個便捷、快速、好用的 Laravel Menu 建構包
下載安裝
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') !!}
您指定的選單就會出現在畫面中。
選單資料輸出
您可以使用以下的程式碼取得 array
和 json
資料格式:
$arr_menu = menu_arct('admin', '_array');
$json_menu = menu_arct('admin', '_json');
檢視輸出
{!! menu_arct('admin', 'adminlte') !!}
{!! menu_arct('admin', 'bootstrap') !!}
{!! menu_arct('admin', 'nestable') !!}
操作指定的選單資料
您可以自訂一些方法操作選單資料,以下的例子說明怎麼取得第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]);
自訂您的檢視
您也可以在專案路徑 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 協議》,轉載必須註明作者和本文連結