我在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;
答案 0 :(得分:1)
如果正确设置实体和断言,这应该是开箱即用的。当Cat
对象为空时,表单组件将返回Mod
作为模型数据并将其设置在父项上。当属性为import Alamofire
import SwiftyJSON
class NetworkCall {
....
}
时,将跳过该属性的验证。看起来应该是这样的:
Address