cube-agency / arbory-menu
Arbory CMS 的菜单模块
v0.2
2020-04-28 10:41 UTC
Requires
- arbory/arbory: ^1.0
This package is auto-updated.
Last update: 2024-09-11 22:02:22 UTC
README
用于创建菜单的CMS模块
安装
需要 cube-agency/arbory-menu
$ composer require cube-agency/arbory-menu
运行迁移(创建 menus
和 menu_items
表)
$ php artisan migrate
通过将模块添加到 config/arbory.php
中启用模块,并在 routes/admin.php
中注册路由
'menu' => [ ... \CubeAgency\ArboryMenu\Http\Controllers\Admin\MenuController::class ]
Admin::modules()->register(\CubeAgency\ArboryMenu\Http\Controllers\Admin\MenuController::class);
示例用法
-
通过管理员模块创建名为 "主菜单(英文)" 的新菜单
-
使用 Laravel 迁移将
main_menu_id
字段添加到 LanguagePage -
在
routes/pages.php
中 LanguagePage 字段定义下添加选择字段Page::register(LanguagePage::class) ->fields(function (FieldSet $fieldSet) { ... $fieldSet->select('main_menu_id')->options( ... ); })
-
在 Pages/LanguagePage.php 中添加关系
public function mainMenu(): BelongsTo { return $this->belongsTo(\CubeAgency\ArboryMenu\Menu\Menu::class); }
-
在视图构建器中获取并分配菜单项
public function compose(View $view): void { ... $view->with([ ... 'mainMenuItems' => $languageNode->content->mainMenu->getPreparedItems() ]); }
-
在布局视图中输出菜单
<ul> @foreach($mainMenuItems as $item) <li class="{{$item['active'] ? 'active' : ''}}"> <a href="{{$item['link']}}"> {{$item['name']}} </a> </li> @endforeach </ul>