desarrolla2/menu-bundle

此包为symfony2提供菜单包

安装: 18,898

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 4

分支: 2

开放问题: 0

类型:symfony-bundle

1.0.0 2021-08-31 20:25 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:18 UTC


README

MenuBundle 意味着在您的Symfony应用程序中实现简单且功能丰富的菜单!

安装

下载包

打开命令行,进入您的项目目录,然后执行以下命令以下载此包的最新稳定版本

$ composer require desarrolla2/menu-bundle

此命令需要您全局安装Composer,如Composer文档的“安装章节”中所述。

启用包

然后,通过在您的项目中的app/AppKernel.php文件中添加以下行来启用包

// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            new Knp\Bundle\Desarrolla2\MenuBundle(),
        );

        // ...
    }

    // ...
}

创建您的第一个菜单

一个示例构建器类看起来像这样

<?php

namespace AdminBundle\Menu;

use Desarrolla2\MenuBundle\Menu\MenuInterface;

class MainMenu implements MenuInterface
{
    public function getMenu()
    {
        return [
            'class' => 'sidebar-menu',
            'items' => [
                [
                    'name' => 'Users',
                    'icon' => 'fa fa-user',
                    'items' => [
                        [
                            'name' => 'Admins',
                            'route' => 'admin_core_user_admin_list',
                            'active_routes' => [
                                'admin_core_user_admin_[\w]+',
                            ],
                        ],
                        [
                            'name' => 'Clients',
                            'route' => 'admin_core_user_client_list',
                            'active_routes' => [
                                'admin_core_user_client_[\w]+',
                            ],
                        ],
                    ],
                ],                
                [
                    'name' => 'Groups',
                    'route' => 'admin_core_group_list',
                    'icon' => 'fa fa-users',
                    'active_routes' => [
                        'admin_core_group_[\w]+',
                        '_admin.group.[\w\.]',
                    ],
                ],
            ],
        ];
    }
}

渲染

要实际渲染菜单,只需在模板的任何位置执行以下操作

{{ renderMenu('TeacherBundle\\Menu\\MainMenu','sidebar') }}

如果您已将菜单定义为服务,则可以按如下方式渲染

{{ renderMenu('my.menu.service.name','sidebar') }}