Forms 带空行的symfony2表单集合

Forms 带空行的symfony2表单集合,forms,symfony,Forms,Symfony,我有一张带收藏的表格: $builder->add('languages', 'collection', array( 'type' => new LanguageType(), 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false )); 在twig模板中,我用一个空(LanguageType)呈现了另外一行。

我有一张带收藏的表格:

$builder->add('languages', 'collection', array(
    'type'           => new LanguageType(),
    'allow_add'      => true,
    'allow_delete'   => true,
    'by_reference'   => false
));
在twig模板中,我用一个空(LanguageType)呈现了另外一行。为此,我使用原型并替换名称

在控制器中,我绑定请求并丢弃setter中的“空”语言:

public function addLanguage($lang)
{
    if($lang->getLanguage())
    {
        $this->languages->add($lang);
    }
    // discard the others
}
出于某种原因,“空”行通过NotBlank验证器抛出验证错误


我唯一有效的解决方案是从原始请求中删除空行,但这很难看。

您的解决方案是有效的

否则,您可以将
$builder->add('lang')
上的
required
选项设置为
false
,但是您必须自己进行一些额外的检查

$builder->add('lang', 'text', array(
    'required' => false
));
有关的文档


或者,您可以创建一些JS代码,只在字段不为空时注入输入的名称(具有空名称的输入的值不会被发送)。它也不是很好,但很有效。

LanguageType()看起来像什么?您要将空表单的名称更改为什么?LanguageType非常简单:$builder->add('lang')它不是脏的,真的,否则唯一的替代解决方案是在
$builder->add('lang')
上将选项
required
设置为false。