culabs/admin-bundle

symfony2的简易管理员生成器

安装: 339

依赖者: 0

建议者: 0

安全: 0

星级: 3

关注者: 3

分支: 1

开放问题: 1

语言:CSS

类型:symfony-bundle

v2.8.2 2016-01-10 04:37 UTC

README

Resumen

此bundle的目的是创建管理模块,主要用于创建CRUD用例。此bundle依赖于以下bundle:LexikFormFilterBundle: https://github.com/lexik/LexikFormFilterBundle KnpPaginatorBundle: http://github.com/KnpLabs/KnpPaginatorBundle KnpMenuBundle: https://github.com/KnpLabs/KnpMenuBundle

安装

{
    "require": {
        "culabs/admin-bundle": "2.6.*@dev"
    }
}

更新vendor

php composer.phar update --prefer-dist

AppKernel中添加bundles

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new CULabs\AdminBundle\CULabsAdminBundle(),
        new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
        new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        // ...
    );
}

配置

config.yml中使用bootstrap_3_horizontal_layout.html.twig作为表单的主题

twig:
    form:
        resources:
          - bootstrap_3_horizontal_layout.html.twig

创建menu.yml文件以配置后端菜单

parameters:
  menu.backend:
    items:

config.yml中导入menu.yml文件

imports:
    - { resource: menu.yml }

config.yml中配置cu_labs_admin

cu_labs_admin:
    menu_backend: menu.backend

创建名为backend_base.html.twig的后端基本模板

{% extends 'CULabsAdminBundle:Layout:base.html.twig' %}
{% block title %}CULabs Admin{% endblock %}
{% block title_app_url(path('admin_dashboard')) %}
{% block url_logout('#') %}

创建指向dashboards的admin_dashboard路由,最初可以重定向到任何其他路由

admin_dashboard:
    path: /admin
    defaults:
        _controller: FrameworkBundle:Redirect:redirect
        route: admin_task

发布资源

php app/console assets:install --symlink

示例将根据以下实体开发

AppBundle\Entity\Task
AppBundle\Entity\Product\Product

为两个实体生成CRUD

php app/console culabs:generate:crud --entity=AppBundle:Task --route-prefix=/admin/task --with-write -n
php app/console culabs:generate:crud --entity=AppBundle:Product/Product --route-prefix=/admin/product --with-write -n

menu.yml中配置两个用例的菜单

parameters:
  menu.backend:
    items:
      dashboard:
        route: admin_dashboard
        icon:  fa-home
      task:
        route: admin_task
        icon:  fa-gear
      product:
        route: admin_product
        icon:  fa-gear

security.yml中配置访问动作的安全性

role_hierarchy:
    ROLE_ADMIN:
        - ROLE_TASK_LIST
        - ROLE_TASK_EDIT
        - ROLE_TASK_NEW
        - ROLE_TASK_SHOW
        - ROLE_TASK_DELETE

        - ROLE_PRODUCT_PRODUCT_LIST
        - ROLE_PRODUCT_PRODUCT_NEW
        - ROLE_PRODUCT_PRODUCT_EDIT
        - ROLE_PRODUCT_PRODUCT_DELETE
        - ROLE_PRODUCT_PRODUCT_SHOW
access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }

测试路由

http://127.0.0.1:8000/app_dev.php/admin/product
http://127.0.0.1:8000/app_dev.php/admin/task

要配置过滤器的表单,需要编辑文件src/AppBundle/Filter/TaskFilterType.phpsrc/AppBundle/Filter/Product/ProductFilterType.php,并按照LexikFormFilterBundle的文档进行操作