secamedia/datatables-form-bundle

提供表示 DataTables AJAX 请求的表单类型和实体。

v1.3 2021-01-11 11:46 UTC

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
    }
...