我有一个包含具有集合的实体的表单:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('fichiers', 'collection', array(
'type' => new FichierType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false
))
;
}
但是,这个集合包含4个非必填字段:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('url', 'text', array(
'required' => false
))
->add('name', 'text', array(
'required' => false
))
->add('size', 'text', array(
'required' => false
))
->add('type', 'text', array(
'required' => false
))
;
}
但是如果我验证表单,我不想插入集合,因为所有字段都是null:
使用params执行'INSERT INTO fichier(url,name,size,type,groupe_id)VALUES(?,?,?,?,?)'时出现异常[null,null,null,null, 2]:
答案 0 :(得分:0)
在您的Fichier实体文件中,请务必使用nullable = true注释
喜欢:
href
对于YAML映射:
/**
* @var string
*
* @ORM\Column(name="foo", type="string", nullable=true)
*/
private $foo;
否则生成的db-scheme将默认为nullable = false,因此您将获得Insert exception