【发布时间】:2019-02-27 18:08:31
【问题描述】:
我有一组图像,我希望能够在 Symfony 4 表单中添加/更新/删除这些图像。
要为这些图像创建一个表单,我使用了一个包含 FileType 的自定义表单:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('image', FileType::class, array(
'data_class' => null
))
;
}
然后,我使用一个填充了上述表单实例的 CollectionType 来为数组中的每个图像呈现一个表单,其中包含“allow_add”和“allow_delete”,以便我可以通过 JavaScript 添加/删除行。
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('imagesets', CollectionType::class, array(
'entry_type' => ImageType::class,
'entry_options' => array('label' => false),
'allow_add' => true,
'allow_delete' => true
));
}
这适用于添加新图像,但在更新现有图像时,不需要 FileType 元素,它应该只用于新行。
问题:如何使现有图像不需要文件类型,但所有新行都需要?
(注意,我会将普通数组传递给这些表单对象,而不是 Doctrine 实体。)
【问题讨论】: