spyrit / propel-datagrid-bundle
Propel的Symfony2 Datagrid Bundle。
5.1.0
2024-09-16 08:20 UTC
Requires
- php: >=7.4.0
- propel/propel: ^2.0@alpha|2.0.x-dev
- spyrit/colibri-csv: ^1.3
- symfony/dependency-injection: ~5.0|~6.0
- symfony/form: ~5.0|~6.0
- symfony/framework-bundle: ~5.0|~6.0
- symfony/http-foundation: ~5.0|~6.0
- symfony/monolog-bundle: ~2.4|~3.0
Requires (Dev)
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.6
- skyfox/propel-bundle: ^5.1|^6.0
- symfony/phpunit-bridge: ^7.1
This package is auto-updated.
Last update: 2024-09-16 11:51:07 UTC
README
此扩展包帮助您快速、轻松地创建和管理简单到复杂的表格。
与其他已在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更新同步更新。要试用,请按照以下步骤操作
- 构建您的模型
app/console propel:build
- 创建数据库结构
app/console propel:sql:insert
- 在您的Web目录中发布资源(在符号链接模式下?)
app/console assets:install --symlink
- 将路由添加到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 类表示感激,该类被转换为服务以满足我们的需求。