0

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

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

在树枝模板中,我用空(LanguageType)渲染了一个附加行。为此,我使用原型并替换名称

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

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

由于某种原因,“空”行通过 NotBlank 验证器引发验证错误。

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

4

1 回答 1

0

您的解决方案是有效的。

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

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

有关所需选项的文档。

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

于 2013-03-18T16:21:18.157 回答