sonata_type_collection在添加行时清除输入文件

时间:2015-09-04 10:23:18

标签: symfony sonata-admin symfony-sonata

提前,抱歉我的英语不好。

我对" sonata_type_collection"有问题。表格类型。

我有两个实体,第一个,#34;命题"与" Image"有一对多的关系。 "图像"与"命题"有多对一的关系。一切似乎都运作良好,ImageAdmin嵌套在PropositionAdmin中。

但是当我在PropositionAdmin中添加一行而没有持久化对象时,它会清除input =" file"领域。我读到它的正确行为,因为Sonata在添加行时重新加载表单。所以我想知道是否有办法避免这种行为。

提前致谢。

这是我的代码:

protected function configureFormFields(FormMapper $formMapper)
{

    $formMapper
        ->add('title')
        ->add('axe')
        ->add('username')
        ->add('password','repeated', array('type' => 'text','options' => array('translation_domain' => 'FOSUserBundle'),
            'first_options' => array('label' => 'form.password'),
            'second_options' => array('label' => 'form.password_confirmation'),
            'invalid_message' => 'fos_user.password.mismatch'))
        ->add('imgs', 'sonata_type_collection',  array(
            'by_reference' => false
        ), array(
            'edit' => 'inline',
            'allow_delete' => true
        )) 
    ;
}

2 个答案:

答案 0 :(得分:1)

我通过使用Symfony2表单而努力。

我使用Command here

生成了formtype

然后,在父实体的包中:

>add('imgs', 'collection',  array(
            'label' => 'Créations',
            'by_reference' => false ,
            'type' => new \propalBundle\Form\ImageType(),
            'allow_delete' => true,
            'allow_add' => true
            ), array(
            'edit' => 'standard',
            'inline' => 'table',
        )) 

它可能需要一些调整,但似乎工作。

答案 1 :(得分:0)

当命题将oneToMany与图像关联时,您应该在PropositionAdmin类中提交的imgs配置中添加多个属性

->add('imgs', 'sonata_type_collection',  array(
'by_reference' => false
'multiple' => true
), array(
'edit' => 'inline',
'allow_delete' => true
));