我试图使用一个表单类来进行添加和编辑。在添加模式下,iconFile
是必需的。在编辑模式下,iconFile
是可选的(以替换当前的图标)。我该如何实现这一点?
我尝试在构造函数中设置一个模式。
class ItemForm extends AbstractType {
public function __construct($mode) {
$this->mode = $mode;
}
public function getDefaultOptions(array $opts) {
if ($mode == 'add') {
return array('validation_groups' => array('Default', 'add'));
} else {
return array('validation_groups' => array('Default'));
}
}
}
// doctrine entity, data_class of form
class Item {
/**
* @Assert\NotBlank(groups={"add"})
* @Assert\Image
*/
protected $iconFile;
}
// creating the form in controller
$form = $this->createForm(new ItemForm($mode));
问题在于即使在编辑模式下,我仍然需要选择一张图片。这会触发HTML5验证。