我正在使用Symfony2设计REST API.
对于POST和PUT请求,我使用的是FormType.就像是 :
class EmailType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('subject', 'textarea')
[...]
;
}
public function getName()
{
return 'email';
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我发布POST时,我必须传递具有名称空间的字段:
{
"email": {
"subject": "subject"
}
}
Run Code Online (Sandbox Code Playgroud)
但我不想要这个顶级命名空间!
有任何想法吗 ?
表单类型必须具有名称,因为如果将其注册为标记为表单类型的服务,则需要以某种方式引用它.在以下代码段中,email是表单类型的名称:
$form = $this->formFactory->create('email', $email);
Run Code Online (Sandbox Code Playgroud)
这就是为什么你必须在表单类型类中返回一个名称:
public function getName()
{
return 'email';
}
Run Code Online (Sandbox Code Playgroud)
因此,不是创建没有名称的表单类型,而是创建一个表单 - 该表单类型的特定实例- 使用空名称:
$form = $this->formFactory->createNamed(null, 'email', $email);
Run Code Online (Sandbox Code Playgroud)
一个空字符串 - ''- 而不是null工作.
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |