arkounay/quick-admin-generator-bundle

QAG是一个使用Doctrine为Symfony应用程序生成CRUD后台的捆绑包。

5.4.5 2024-05-06 11:49 UTC

README

GitHub release (latest SemVer) GitHub Workflow Status MIT License codecov

QAG是一个允许使用Doctrine快速简单地生成Symfony应用程序后台的捆绑包。

Quick Admin Generator Preview

入门指南

安装依赖项

composer require arkounay/quick-admin-generator-bundle

同时,确保在config/bundles.php中添加了以下行:

Arkounay\Bundle\QuickAdminGeneratorBundle\ArkounayQuickAdminGeneratorBundle::class => ['all' => true],

并且安装了资源:php bin/console assets:install --symlink

最后,添加以下路由配置,例如在config/routes.yaml中:

qag_routes:
    resource: 'Arkounay\Bundle\QuickAdminGeneratorBundle\Crud\RouteLoader'
    type: service
    prefix: '/admin'

你可能想保护/admin路由前缀。为此,你可以在你的security.yaml中添加以下行:

access_control:
     - { path: ^/admin, roles: ROLE_ADMIN }

就这样,捆绑包就可以使用了。

现在,你可以添加一个扩展Arkounay\Bundle\QuickAdminGeneratorBundle\Controller\Crud的Controller,以添加你的第一个CRUD。

例如,假设你有一个News实体。

!> 确保你的实体实现了__toString()

创建一个控制器,例如src/Controller/Admin/NewsController.php,并包含以下代码:

namespace App\Controller\Admin;

use App\Entity\News;
use Arkounay\Bundle\QuickAdminGeneratorBundle\Controller\Crud;

class NewsController extends Crud
{
    public function getEntity(): string
    {
        return News::class;
    }
}

现在在浏览器中刷新/admin。你应该看到菜单中出现了一个新的“新闻”项目,你现在可以创建、编辑和删除新闻。

如果你使用symfony命令显示路由php bin/console debug:router,你会看到为你生成了某些路由。

qag.category                       ANY      ANY      ANY    /admin/category/                  
qag.category_create                ANY      ANY      ANY    /admin/category/create            
qag.category_delete                ANY      ANY      ANY    /admin/category/delete/{id}/      
qag.category_delete_batch          ANY      ANY      ANY    /admin/category/deleteBatch      
qag.category_edit                  ANY      ANY      ANY    /admin/category/edit/{id}/        
qag.category_export                ANY      ANY      ANY    /admin/category/export
qag.category_filter_form_ajax      ANY      ANY      ANY    /admin/category/filterFormAjax
qag.category_toggle_boolean_post   POST     ANY      ANY    /admin/category/toggleBooleanPost/{id}/

下一步

根据项目的复杂性,有多种方式可以配置和覆盖QAG捆绑包中的内容。你可以使用属性来对实体字段进行简单快捷的调整,覆盖Twig模板以更改外观,添加监听器以在解析实体时应用特殊规则,等等。

参见

  1. 字段配置
  2. 控制器、列表和安全性
  3. 操作和路由
  4. 表单
  5. 配置菜单项及其位置
  6. 覆盖其他twigs