Symfony表单类型继承问题

时间:2014-07-09 13:39:10

标签: symfony fosrestbundle

我正在使用FOSRestBundle构建API并使用Symfony提供的类型执行验证。

我面临的问题是,我试图找到一种方法来压缩在尝试阻止表单类型中的继承进行代码重复时创建的表单类型继承模型。这是通过inherit data option上的指南实现的。

e.g。

....

$builder->add('nested', new NestedType());

....

然而,这在尝试向API提交数据时有其含义。

目前:

{
    "type": {
        "key": "value",
        "nested": {
            "nested_key": "value"
        }
    }
}

我的目标:

{
    "type": {
        "key": "value",
        "nested_key": "value"
    }
}

有没有办法实现这一点而不重复NestedType

中的代码

1 个答案:

答案 0 :(得分:0)

我最终使用的解决方案是扩展NestedType,例如:

class TypeType extends NestedType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
    parent::buildForm($builder, $options);
    $builder
      ->add('key');
  }

  ....

这不太理想,但是因为在验证错误中,扩展类中的错误只会隐藏错误,而不是与错误相关联。