Met de formbuilder probeer ik een form op te bouwen die gelinkt is aan een entity (Card). Deze entity heeft zelf meerdere fields die op zich ook entities zijn (compositie). De entity Card heeft een field van het type CardEffect dat op zich weer een field van het type CardEffectType heeft.
Bij het invullen van mijn form moet ik het name field van CardEffect invullen en ook een lijst van opties geven voor het CardEffectType.
In mijn formbuilder heb ik het volgende:
Het probleem hierbij is echter dat de cardEffectName en cardEffectType fields niet bestaan in de Card entity. Ze zitten namelijk in meerdere niveaus onder het cardEffect field van Card.
Mapped op false zetten is een optie, maar dan moet ik manueel de ingevulde waarden koppelen aan Card. Een betere oplossing lijkt me rechtstreeks een cardEffectName en cardEffectType getter/setter aanmaken in Card.
Beiden oplossingen lijken me niet ideaal en ik vraag me af of hier geen betere manier voor bestaat die ik over het hoofd zie?
Bij het invullen van mijn form moet ik het name field van CardEffect invullen en ook een lijst van opties geven voor het CardEffectType.
In mijn formbuilder heb ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $builder ->add('cardEffectName', TextType::class, array( 'required' => false, 'error_bubbling' => true )) ->add('cardEffectType', EntityType::class, array( 'class' => 'AppBundle:CardEffectType', 'choice_label' => 'name', 'multiple' => false, 'expanded' => false, 'required' => false, 'error_bubbling' => true )) |
Het probleem hierbij is echter dat de cardEffectName en cardEffectType fields niet bestaan in de Card entity. Ze zitten namelijk in meerdere niveaus onder het cardEffect field van Card.
Mapped op false zetten is een optie, maar dan moet ik manueel de ingevulde waarden koppelen aan Card. Een betere oplossing lijkt me rechtstreeks een cardEffectName en cardEffectType getter/setter aanmaken in Card.
Beiden oplossingen lijken me niet ideaal en ik vraag me af of hier geen betere manier voor bestaat die ik over het hoofd zie?
[ Voor 8% gewijzigd door egonolieux op 19-02-2017 08:19 ]