symfony2表单集合,空行

时间:2013-03-18 14:59:50

标签: forms symfony

我有一个带有集合的表单:

$builder->add('languages', 'collection', array(
    'type'           => new LanguageType(),
    'allow_add'      => true,
    'allow_delete'   => true,
    'by_reference'   => false
));

在twig-template中,我使用空(LanguageType)渲染另一行。为此,我使用原型并替换名称

在Controller中,我绑定了Request并丢弃了setter中的“empty”语言:

public function addLanguage($lang)
{
    if($lang->getLanguage())
    {
        $this->languages->add($lang);
    }
    // discard the others
}

由于某些原因,“空”行通过NotBlank验证器抛出验证错误。

我唯一可行的解​​决方案是从raw-Request中删除空行,但那很难看。

1 个答案:

答案 0 :(得分:0)

您的解决方案有效。

否则,您可以在required上将选项false设置为$builder->add('lang'),但之后您必须自行进行额外检查。

$builder->add('lang', 'text', array(
    'required' => false
));

有关required option

的文档

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