应用菜单
菜单主要由前端资源进行注册,使用该类库可以将后端生成的菜单注册到前端中,实现动态菜单的能力。
菜单初始化
使用菜单前需要先初始化菜单模块,在应用入口文件 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 方法可以获取现有菜单。