Ik heb een entity Card die een aantal OneToMany relaties heeft. ter illustratie gebruik ik hier CardAttack:
Om een nieuwe card toe te voegen, heb ik een form waarin oa cardAttacks in te vullen zijn. De bedoeling is dat ik eenvoudig het gehele door de form bekomen card object kan persisten, maar het probleem is dat bij het invullen van de form de card referentie (inversed side) in cardAttack op null blijft.
Ik zou dit dus telkens manueel moeten toekennen voordat ik card persist:
Ik heb een stuk of 5 andere (inclusief geneste) velden zoals cardAttack, dus dit wordt al snel een omslachtige boel. Bestaat er een manier om dit automatisch te laten gebeuren?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| /** * @ORM\Entity(repositoryClass="AppBundle\Repository\CardRepository") * @ORM\Table(name="card") */ class Card { ... /** * @ORM\OneToMany(targetEntity="\AppBundle\Entity\CardAttack", mappedBy="card", cascade="persist") * @ORM\OrderBy({"id"="ASC"}) */ private $cardAttacks; ... } /** * @ORM\Entity * @ORM\Table(name="card_attack") */ class CardAttack { ... /** * @Assert\NotBlank() * @Assert\Type("\AppBundle\Entity\Card") * @Assert\Valid() * * @ORM\ManyToOne(targetEntity="\AppBundle\Entity\Card", inversedBy="cardAttacks") * @ORM\JoinColumn(name="card_id", referencedColumnName="id") */ private $card; ... } |
Om een nieuwe card toe te voegen, heb ik een form waarin oa cardAttacks in te vullen zijn. De bedoeling is dat ik eenvoudig het gehele door de form bekomen card object kan persisten, maar het probleem is dat bij het invullen van de form de card referentie (inversed side) in cardAttack op null blijft.
Ik zou dit dus telkens manueel moeten toekennen voordat ik card persist:
code:
1
2
3
4
| foreach ($card->getCardAttacks() as &$cardAttack) { $cardAttack->setCard($card); } |
Ik heb een stuk of 5 andere (inclusief geneste) velden zoals cardAttack, dus dit wordt al snel een omslachtige boel. Bestaat er een manier om dit automatisch te laten gebeuren?