【发布时间】:2016-04-09 21:20:41
【问题描述】:
我在 Symfony2 中有表单,其中包含 2 个子表单类型,代表我的实体中的 2 个关系。 invoiceAddress 始终是必需的,它工作正常,但我希望 deliveryAddress 仅在 deliveryAdress 的所有输入为空时才保持可选。 当我将它设置为不需要时,symfony 将 deliveryAddress 设置为 null,而表单中没有填写任何内容,但是当某些字段被填写时,它不会对该实体运行断言验证。所以我想要实现的是在表单为空时告诉 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;
【问题讨论】:
标签: php symfony symfony-forms