Symfony2表单不会持久空集合

时间:2015-07-27 12:57:57

标签: php symfony

我有一个包含具有集合的实体的表单:

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]:

1 个答案:

答案 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