secamedia / datatables-form-bundle
提供表示 DataTables AJAX 请求的表单类型和实体。
v1.3
2021-01-11 11:46 UTC
Requires
- php: >=5.5.9
- symfony/form: ^2.8|^3.0|^4.0|^5.0
This package is auto-updated.
Last update: 2024-09-11 19:35:57 UTC
README
这是一个将 DataTables Ajax 请求数据通过表单类型表示为实体的 Symfony Bundle。
通过 Composer 安装
将其作为依赖项通过 composer 安装。
$ php composer.phar require secamedia/datatables-form-bundle
激活
在 kernel 中注册此包以激活该包。
public function registerBundles() { $bundles = [ ... new Sm\DatatablesFormBundle\SmDatatablesFormBundle(), ... ]; }
如何与 DataTables Ajax 请求一起使用
要识别请求数据,您必须将 datatables 数据移动到键 datatables
。
$('table').DataTable({ 'ajax': { 'url': '/ajax-request.php', 'data': function (data) { // Move DataTables data into own key for (var d in data) { if (!data.hasOwnProperty(d)) { continue; } data['datatables[' + d + ']'] = data[d]; delete data[d]; } }, 'type': 'POST' } });
然后您可以在控制器中创建一个表单,并将实体设置为检索数据作为对象。
use Sm\DatatablesFormBundle\Entity\DataTablesForm; use Sm\DatatablesFormBundle\Form\Type\DataTablesFormType; ... public function someAction(Request $request) { $data = new DataTablesForm(); $form = $this->createForm(DataTablesFormType::class, $data); $form->handleRequest($request); // use $data } ...