spyrit / propel-datagrid-bundle

Propel的Symfony2 Datagrid Bundle。

安装量 38,787

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 9

分支: 3

开放问题: 0

类型:symfony-bundle

5.1.0 2024-09-16 08:20 UTC

README

Join the chat at https://gitter.im/spyrit/PropelDatagridBundle Build Status

此扩展包帮助您快速、轻松地创建和管理简单到复杂的表格。

与其他已在github和/或packagist上可用的类似扩展包不同,它不会在视图中渲染表格的魔术方法。这种技术选择允许您完全自定义表格的外观和渲染(过滤字段、按钮、列、每列中显示的数据、分页链接和信息等。)

这使得它在后端和前端应用中都易于实现和使用。

还是有点怀疑?让我们看看它是如何工作的!

安装

获取代码

由于composer是安装依赖项最简单、最快的方式,安装此扩展包的唯一方法是将其添加到依赖项中

composer require spyrit/propel-datagrid-bundle
  • 分支1.x(不再维护)适用于Propel1和Symfony2
    • 分支1.0适用于与旧项目(PHP < 5.4)的向后兼容性。
    • 分支1.1需要PHP-5.4+以支持csanquer/colibri-csv 1.2
    • 分支1.2集成了新的功能,如动态每页最大值。
    • 分支1.3实现了批量(大量)操作。
  • 分支2.x(不再维护)适用于Propel2和Symfony2
    • 分支2.0适用于与旧项目(PHP < 5.4)的向后兼容性。
    • 分支2.1需要PHP-5.4+以支持csanquer/colibri-csv 1.2
    • 分支2.2集成了新的功能,如动态每页最大值。
    • 分支2.3实现了批量(大量)操作。
  • 分支3.0(不再维护)适用于Propel2和Symfony3
  • 分支4.0(维护)适用于Propel2和Symfony4
  • 分支5.0(维护)适用于Propel2和Symfony5

启用扩展包

您不会对需要在您的Kernel中添加以下行感到惊讶

// app/AppKernel.php
<?php
    // ...
    public function registerBundles()
    {
        $bundles = array(
            // ...
            // don't forget the PropelBundle too
            new Spyrit\PropelDatagridBundle\SpyritPropelDatagridBundle(),
        );
    }

试用演示

演示包含在demo分支中,该分支与master更新同步更新。要试用,请按照以下步骤操作

  1. 构建您的模型
app/console propel:build
  1. 创建数据库结构
app/console propel:sql:insert
  1. 在您的Web目录中发布资源(在符号链接模式下?)
app/console assets:install --symlink
  1. 将路由添加到PropelDatagridBundle的路由文件
spyrit_propel_datagrid:
    resource: "@SpyritPropelDatagridBundle/Resources/config/routing.yml"

如果您使用了此之前的代码示例但未为路由添加前缀,您应通过此URL访问演示:://<your_dommain>/datagrid/demo/book/list

用法

可能是本文档中最有趣的部分,它简要描述了如何创建和使用您的第一个表格。

创建您的表格 - 您的工作

要创建一个表格,您必须创建一个继承自PropelDatagrid对象并实现所有PropelDatagridInterface方法的单个类

<?php

namespace Spyrit\PropelDatagridBundle\Datagrid\Demo;

use Spyrit\PropelDatagridBundle\Datagrid\PropelDatagrid;

class BookDatagrid extends PropelDatagrid
{
    public function configureQuery()
    {
    }

    public function getDefaultSortColumn()
    {
    }

    public function getName()
    {
    }
}

configureQuery方法必须返回一个预定义的PropelQuery对象(例如:BookQuery对象),如下所示

<?php
//...
public function configureQuery()
{
    return BookQuery::create()
        ->joinWith('Author', \Criteria::LEFT_JOIN)
        ->joinWith('Publisher', \Criteria::LEFT_JOIN)
    ;
}

声明您的表格 - 控制器的工作

待办事项

显示您的表格 - 视图的工作和您(或设计师)的工作

待办事项

导出表格数据

待办事项

致谢

我们特别感谢...

  • Charles SANQUER为其对LightCSV库的分支:Colibri CSV表示感谢,它在导出功能中使用。
  • Subosito为其独立的Inflector 表示感激,该类被转换为服务以满足我们的需求。