【发布时间】:2016-02-11 18:25:25
【问题描述】:
如何制作一个 Symfony 表单仅用于验证后端数据?数据是使用 AJAX 提交的,我已经创建了一个与数据对应的表单类,但是 $form->handleRequest($request); 由于某种原因没有提交,错误是空的,我没有任何信息,也无法找出问题所在。
将处理更改为 $form->submit($request->request->all()); 会引发类型错误,指出数据为空,但事实并非如此。
编辑:澄清一下 - 没有呈现的 HTML 表单!只有来自 POST 请求的纯数据。
【问题讨论】:
-
请在问题中包含您的代码
-
你想看什么代码?任何示例表单都可以,只要您不将其放入模板中并且仅提交来自 JS 的数据(例如,
jQuery.post('/action', {foo: 'bar'});,而 foo 是您的实体中的一个字段)。 -
可能是表单类的代码和控制器操作的代码。如果您遇到此问题,肯定有一些需要改进或改变的地方。
-
如果您想手动提交表单,
submit()函数应如下所示:$form->submit($request->request->get($form->getName()));。您应该发布您的 AJAX 代码,因为我的猜测是您没有正确发送数据。您不应该只是将键和值发布到您的表单中,您应该创建一个表单,然后在 AJAX 中对其进行序列化。如果您只想发送键/值,那么您根本不应该使用表单进行验证。 -
AJAX中没有可以序列化的形式……我是这么想的;使用表单不是正确的做法,但是教我 Symfony 的同事说我必须使用它们。我想我会告诉他不。