Skip to content

应用菜单

菜单主要由前端资源进行注册,使用该类库可以将后端生成的菜单注册到前端中,实现动态菜单的能力。

菜单初始化

使用菜单前需要先初始化菜单模块,在应用入口文件 App.php 中的 init 方法进行初始化,如下:

php
use Dux\Menu\Menu as DuxMenu;

// 初始化菜单类
$app->getMenu()->set("admin", new DuxMenu());
use Dux\Menu\Menu as DuxMenu;

// 初始化菜单类
$app->getMenu()->set("admin", new DuxMenu());

菜单使用

我们推荐在应用入口文件 App.php 中的 register 方法进行菜单使用,如下:

php
// 获取 admin 标识菜单类
$menu = $app->getMenu()->get("admin");

// 添加主菜单
$app = $menu->add("system", [
    "icon" => "cog-6-tooth",
    "order" => 100,
]);

// 注册菜单组
$group = $app->group("system.userGroup");

// 注册菜单条目
$group->item(name: "system.user", route: "system/user/list", sort: 0);
// 获取 admin 标识菜单类
$menu = $app->getMenu()->get("admin");

// 添加主菜单
$app = $menu->add("system", [
    "icon" => "cog-6-tooth",
    "order" => 100,
]);

// 注册菜单组
$group = $app->group("system.userGroup");

// 注册菜单条目
$group->item(name: "system.user", route: "system/user/list", sort: 0);

菜单图标

菜单图标采用 tdesign 作为菜单图标。例如:

php
$app = $menu->add("example", [
    "name" => "示例",
    "icon" => "sparkles",
    "order" => 100,
]);
$app = $menu->add("example", [
    "name" => "示例",
    "icon" => "sparkles",
    "order" => 100,
]);

更多关于图标的定义可以查看 官方文档

附加菜单

如果需要在已有主菜单内添加菜单,则可使用以下方法获取主菜单进行添加:

php
$app = $menu->push("system");
$group = $app->group("system.group", 10);
$app = $menu->push("system");
$group = $app->group("system.group", 10);

这里的 push 方法可以获取现有菜单。

Released under the MIT License.