Forms Symfony 2.8-表单集合类型仅呈现标签

Forms Symfony 2.8-表单集合类型仅呈现标签,forms,symfony,formcollection,symfony-2.8,Forms,Symfony,Formcollection,Symfony 2.8,在我的应用程序中,用户可以使用多种语言,因此用户和语言实体通过多个实体关系进行关联 在用户实体类中: /** * @ORM\OneToMany(targetEntity="TraineeLanguage", mappedBy="trainee", cascade={"persist"})) */ private $languages; public function __construct() { $this->languages = new ArrayCollection(

在我的应用程序中,用户可以使用多种语言,因此
用户
语言
实体通过
多个实体
关系进行关联

在用户实体类中:

/**
 * @ORM\OneToMany(targetEntity="TraineeLanguage", mappedBy="trainee", cascade={"persist"}))
 */
private $languages;

public function __construct()
{
    $this->languages = new ArrayCollection();
}
/**
 * @ORM\ManyToOne(targetEntity="Trainee", inversedBy="languages")
 * @ORM\JoinColumn(name="trainee_id", referencedColumnName="id")
 */
private $trainee;
在语言实体类中:

/**
 * @ORM\OneToMany(targetEntity="TraineeLanguage", mappedBy="trainee", cascade={"persist"}))
 */
private $languages;

public function __construct()
{
    $this->languages = new ArrayCollection();
}
/**
 * @ORM\ManyToOne(targetEntity="Trainee", inversedBy="languages")
 * @ORM\JoinColumn(name="trainee_id", referencedColumnName="id")
 */
private $trainee;
现在,我想在用户配置文件表单中创建一个语言表单集合:

->add('languages', CollectionType::class, array(
    'type' => TraineeLanguageType::class,
    'required' => false
))
我的语文课:

class TraineeLanguageType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('language', TextType::class, array(
                'attr' => array(
                    'placeholder' => 'Language'
                ),
                'required' => false
            ))
            ->add('level', TextType::class, array(
                'attr' => array(
                    'placeholder' => 'Level'
                ),
                'required' => false
            ));
    }
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver
            ->setDefaults(array(
                'data_class' => 'IndexBundle\Entity\TraineeLanguage'
            ));
    }

    public function getName()
    {
        return 'language';
    }
}
现在,当我尝试显示表单时

{{ form_row(trainee_background_information_form.languages) }}
仅显示标签

此外,它不适用于:

{{ form_widget(trainee_background_information_form.languages) }}


有人注意到我的代码中的错误并知道发生了什么吗?

使用集合类型时,需要编写额外的html&js来处理这种类型的字段。Symfony文档中有更多内容:

我完全错过了添加、删除按钮的部分。由于MopaBootstrap和BraincraftedBootstrap捆绑包呈现了视图,我认为它们只是设计了样式,而没有创建JS功能。谢谢,现在一切都好了。