我正在尝试使用symfony2来创建Web服务。我希望Web服务能够构建并倾听:
使用参数key1 = value和key2 = value2
POST到/ teams / list出于验证目的,我创建了一个TeamForm对象和一个TeamFormModel来验证数据(使用注释)。我遇到的问题是表单正在寻找团队[key1]和团队[key2] ,而不是仅仅将key1和key2绑定到TeamFormModel。
有没有办法将表单配置为不使用团队[*]?
答案 0 :(得分:6)
如果您使用 2.1 分支,则可以轻松创建一个空名称的表单。
$form = $this->get('form.factory')->createNamed(
'', // the name
new TeamType(), // the type
$team // the data
);
$form->bindRequest($request);
所以它会像你期待的那样工作。
但是如果您使用 2.0 分支,据我所知,它不受支持,您必须手动进行绑定:
$form = $this->createForm(new TeamType(), $team);
$from->bind($request->request->all());
答案 1 :(得分:2)
您可以在不创建表单的情况下验证实体。您可以从POST数据创建实体对象并将其传递给验证器。请参阅食谱的validation部分。
如果您不希望每次都从请求参数创建实体对象,那么您可以使用json或xml格式发布数据,然后使用JMSSerializerBundle反序列化为实体对象。