资源菜单

基础菜单由前端的资源进行定义,但是偶尔我们需要通过后台来定义一些菜单。

定义资源后我们可以获取菜单对象将一些需要动态显示的菜单注册给前端以便合并使用。

菜单对象

应用入口中获取注册资源名为 admin 的菜单类,建议在 register 方法中获取:

public function register(Bootstrap $app): void
{
    $menu = $app->getMenu()->get("admin");
}

添加菜单

// 添加主菜单
$app = $menu->add("test", [
    "label" => '菜单名',
    "icon" => "i-tabler:home",
    "meta" => [
        "sort" => 100,
    ],
]);

// 注册菜单组
$group = $app->group(name: "test.testGroup", icon: "i-tabler:users", sort: 0, label: "菜单组名");

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

菜单图标

菜单图标采用 unocss 集成 tabler icon 作为菜单图标。使用时需要增加前缀,如下:

i-tabler:图标名

附加菜单

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

// 获取主菜单
$app = $menu->push("system");

// 注册菜单组
$group = $app->group(name: "test.testGroup", icon: "i-tabler:users", sort: 0, label: "菜单组名");