Symfony表单CollectionType删除空值

时间:2017-07-19 14:50:46

标签: php forms symfony

我使用的是Symfony 3.3,我有一个带有CollectionType的表单,如:

$builder->add('links', CollectionType::class, array(
    'label' => false,
    'entry_type' => LinkType::class,
    'entry_options' => ['data_class' => CompanyLink::class],
    'allow_add' => true,
    'allow_delete' => true,
    'prototype' => true,
    'by_reference' => false,
));

我按照文档:https://symfony.com/doc/current/reference/forms/types/collection.html

这就是我的看法:

enter image description here

因此,表单显示数据库中已有的数据(每次一行),但它总是添加一个空字段。

如何删除此空白字段?因为我只想要这一行,所以我点击按钮" Ajouter"。

谢谢!

2 个答案:

答案 0 :(得分:0)

这篇文章有点老了ihope它不会迟到。我找到了一个解决方案,即使你带了一个twig的collectionType字段。 为避免在for循环后出现此空字段,请添加

{% do form.your_field.setRendered %}

它对我有用,希望它能为你做同样的事情:)。

答案 1 :(得分:0)

我认为您在呈现表单的功能中有setData(),

要呈现不带数据的表单,您只需要执行以下示例:

//Your main entity
$mainEntity = new Entity();
//adding the other entity into collection variable of other entity of main entity
$mainEntity->addOtherEntity(new otherEntity());

$form = $this->createForm(
        MainEntityForm::class,
        $mainEntity
);

希望有帮助。