culabs / admin-bundle
symfony2的简易管理员生成器
v2.8.2
2016-01-10 04:37 UTC
Requires
- php: >=5.3.3
- knplabs/knp-menu-bundle: 2.*@dev
- knplabs/knp-paginator-bundle: 2.*@dev
- lexik/form-filter-bundle: 4.*@dev
Suggests
- culabs/testing-bundle: For test
- doctrine/data-fixtures: For test
- phpunit/phpunit: For test
- polishsymfonycommunity/symfony-mocker-container: For test
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.php
和src/AppBundle/Filter/Product/ProductFilterType.php
,并按照LexikFormFilterBundle
的文档进行操作