小编Mar*_*een的帖子

Symfony 4 表单 CollectionType:仅新行需要 FileType 元素

我有一组图像,我希望能够以 Symfony 4 形式添加/更新/删除这些图像。

为了为这些图像创建一个表单,我使用了一个带有 FileType 的自定义表单:

public function buildForm(FormBuilderInterface $builder, array $options) {

    $builder
        ->add('image', FileType::class, array(
            'data_class' => null
        ))
    ;

}
Run Code Online (Sandbox Code Playgroud)

然后,我使用一个充满上述表单实例的 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
    ));
}
Run Code Online (Sandbox Code Playgroud)

这适用于添加新图像,但在更新现有图像时,不应需要 FileType 元素,只应为新行需要它。

问题:如何使现有图像不需要 FileType,但所有新行都需要?

(注意,我会将普通数组传递给这些表单对象,而不是 Doctrine 实体。)

forms symfony symfony4

5
推荐指数
0
解决办法
803
查看次数

标签 统计

forms ×1

symfony ×1

symfony4 ×1