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。