igornast / data-tables
DataTables Symfony 5 组件。
dev-master
2020-10-04 12:20 UTC
Requires
- php: ^7.2
- ext-pdo: *
- defuse/php-encryption: ^2.2
- doctrine/annotations: ^1.8
- symfony/framework-bundle: ^5.0
Requires (Dev)
- symfony/phpunit-bridge: ^5.0
This package is auto-updated.
Last update: 2024-09-04 21:24:43 UTC
README
DataTables Symfony 组件提供易于使用的工具,允许您为 doctrine 实体构建动态生成的 js 表格。请随时发送关于开发和功能实现的反馈和建议。
主要目标是改进视图渲染(twig),使其更友好于用户和 Symfony 开发者。
示例
安装
使用 Composer 安装组件。
composer require igornast/data-tables
在 bundles.php 数组中启用包。
return [ //others Igornast\DataTables\IgornastDataTablesBundle::class => ['all' => true], ];
使用
Data-tables 可用于创建通过 AJAX 请求加载的列表。此外,可以过滤、排序和分页行。脚本将向包控制器发送 POST 请求,在成功时返回 JSON 响应。
igornast_datatables_get_data POST /igornast-data-tables/get-data
脚本
将资产(js、css)添加和安装到您的基 twig 模板中,使用 twig 扩展来渲染列表。
{% block body %}
<script src="{{ asset('bundles/igornastdatatables/js/jquery.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('bundles/igornastdatatables/js/datatables.min.js') }}" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('bundles/igornastdatatables/css/datatables.css') }}">
{{ igornast_listing(listing) }}
{% endblock %}
构建列表
使用 ListingManager 服务构建列表实例。
$listing = $listingManager ->createListingBuilder('my_awesome_table', SampleItem::class) ->getListing();
传递表名和实体 FQN。数据将从给定的实体加载,并使用 'mainSearchField' 中的属性在行过滤期间使用。
class IndexController { /** * @Route("/", name="app_index") */ public function index(ListingManager $listingManager) { $listing = $listingManager ->createListingBuilder('my_awesome_table', SampleItem::class) ->mainSearchField('name') ->template('custom_listing_template.html.twig') ->column('id', 'Object Id') ->column('type', 'Type') ->column('name', 'Name') ->getListing(); return $this->render('index.html.twig', ['listing' => $listing]); } }
通过传递属性名称和列标签到 ListingBuilder::column 方法添加列。组件目前仅支持标量值;
$listing->column('entityProperty', 'Column Label');
使用 ListingBuilder::template 方法传递自定义模板。
$listing->template('listing_template.html.twig');
许可证
本项目采用 MIT 许可证 - 详细信息请参阅 LICENSE.md 文件