Symfony2 FormType可选整体或全无

时间:2016-04-09 21:20:41

标签: php symfony symfony-forms

我在Symfony2中有表单,其中包含2个子表单类型,表示我的实体中的2个关系。始终需要invoiceAddress,它工作正常,但我希望仅当deliveryAdress的所有输入都为空时,deliveryAddress才会保持可选。 当我将其设置为不需要时,symfony在表单中没有填充任何内容时将deliveryAddress设置为null,但是当某些字段被填充时,它不会在该实体上运行asserts验证。所以我想要实现的是告诉symfony什么时候表单是空的然后将deliveryAddress设置为null但是当设置了表单中的内容然后以正常方式运行验证。有什么方法可以做到吗?感谢。

我的表单类型如下所示,在控制器中我有标准$ form-> isValid条件。

$builder->add('invoiceAddress',new AddressType())
        ->add('deliveryAddress', new AddressType(),["required" => false])

AdressType只包含一些基本类型映射:

$builder->add('firstName')
        ->add('lastName')...

在地址实体中:

    /**
 * @Assert\NotBlank
 * @ORM\Column
 * @var string
 */
private $firstName;

/**
 * @Assert\NotBlank
 * @ORM\Column
 * @var string
 */
private $lastName;

1 个答案:

答案 0 :(得分:1)

如果正确设置实体和断言,这应该是开箱即用的。当Cat对象为空时,表单组件将返回Mod作为模型数据并将其设置在父项上。当属性为import Alamofire import SwiftyJSON class NetworkCall { .... } 时,将跳过该属性的验证。看起来应该是这样的:

Address