Symfony - Ajax表单验证 - 额外数据

时间:2014-05-19 11:09:13

标签: php jquery ajax forms symfony

我需要从Symfony表单发送带有Ajax调用的数据,其中包含一个包含控制器选项的额外数据。

我正在开发一个自定义框架,包括Symfony表单组件。

所以我尝试在我的JS中发送这样的值:

$.ajax
(
    {
        type: "POST",
        url: '/myUrl',
        data: 
        {
            'formData' : $(this).serialize(),
            'extraData' : {'test1' : 'test1', 'test2' : 'test2'}
        },
        success: function(result)
        {
            // do something
        }
    }
);

如何在控制器中获取表单数据以让组件正确理解它?此代码无效:

$formData = $this->getRequest()->request('formData');
$form->bind($formData);

谢谢。我希望我的问题很清楚

编辑:我最终将数据集成到表单中的隐藏字段中。表单没有声明任何data_class,因为我们使用的ORM是一个非常自定义的ORM。谢谢你的回答

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果您的表单有data_class选项,则无法使用extra_values直接绑定/处理请求。

您的表单需要您已在表单类型上定义的变量。

像这样使用:

if($request->isXmlHttpRequest()) {
    $form->handleRequest($request);

    if($form->isValid()) {
        // To get extra data;
        $extra_data = $request->request->get('extraData');
    }
}