我正在尝试改进个人应用程序,但我遇到了嵌入式表单的问题。事实上,我有一个advertType表单,我想在其中添加一个字段,以便选择附加到广告的技能和级别。
通过这种方式,我有一个广告实体,一个技能实体,一个adsSkill实体,由于OneToMany关系,它引用了广告和技能实体。 level属性来自advertSkill实体。
我不知道如何继续在我的广告表单中添加技能字段,以便广告将与相应的技能和级别一起正确存储。
我的广告实体中没有引用技能的属性。
下面是我的advertType类的示例:
$builder
->add('date', DateTimeType::class, array(
'view_timezone' => 'Europe/Paris',
'with_seconds' => true
))
->add('title', TextType::class)
->add('content', TextareaType::class)
->add('author', TextType::class)
->add('email', TextType::class)
->add('image', ImageType::class)
->add('categories', EntityType::class, array(
'class' => 'OCPlatformBundle:Category',
'choice_label' => 'name',
'multiple' => true
))
->add('save', SubmitType::class);
感谢您的帮助,我可以提供有关我的代码的更多详细信息,但是当我将一些代码添加到代码中时,它会很难看。
我试着在法语论坛上继续阅读与我相同问题的一些建议,但我还有一个错误,因为我没有显示我的技能名称和我的关卡名称。
我的AdvertType表单类:
enter code here $builder
->add('date', DateTimeType::class, array(
'view_timezone' => 'Europe/Paris', // On affiche l'horaire avec le fuseau horaire de Paris
'with_seconds' => true // On ajoute les secondes àl'affichage de l'horaire
))
->add('title', TextType::class)
->add('content', TextareaType::class)
->add('author', TextType::class)
->add('email', TextType::class)
->add('image', ImageType::class)
->add('categories', EntityType::class, array(
'class' => 'OCPlatformBundle:Category',
'choice_label' => 'name',
'multiple' => true
))
->add('advertSkill', CollectionType::class, array(
'entry_type' => AdvertSkillType::class
))
->add('save', SubmitType::class);
我的新AdvertType表单类:
enter code here public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('advertSkill', EntityType::class, array(
'class' => 'OCPlatformBundle:Skill',
'choice_label' => 'name'
))
->add('level', EntityType::class, array(
'class' => 'OCPlatformBundle:AdvertSkill',
'choices' => array('Débutant', 'Intermédiaire', 'Expert')
));
}
此外,我在advertSkill类引用的两个类中添加了OneToMany属性“advertSkill”。
我不明白如何使它有效!