[doctrine] problem z powiązaniami (inverse i owning side) |
[doctrine] problem z powiązaniami (inverse i owning side) |
21.10.2011, 19:44:28
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 25.03.2008 Ostrzeżenie: (0%) |
Witam,
Bawię się w sandboxie Doctrine 2.1 i chcę powiązać ze sobą odpowiednio "Entitiesy": Question i Answer. Uznałem, że relacja powinna być (patrząc od strony Question) OneToMany, bidirectional, Question po stronie Owning. Jednak, kiedy stworzę Question i Answer, dodam Answer do Question i zapiszę Question, to zapisuje się on w bazie bez Answer:
Ponadto, jak zrobię odwrotnie i dodam Question do Answera i spróbuję zapisać Answer:
to dostaję błąd: InvalidArgumentException: A new entity was found through the relationship 'Entities\Answer#question' that was not configured to cascade persist operations for entity: Entities\Question@0000000006b2387700000000290a0be5. Explicitly persist the new entity or configure cascading persist operations on the relationship. If you cannot find out which entity causes the problem implement 'Entities\Question#__toString()' to get a clue. in H:\serwer\projekty\doctrine2-orm2\lib\Doctrine\ORM\UnitOfWork.php on line 576 Generalnie wygląda to dla mnie jakby Answer był po stronie Owning i jakby cascading był dobrze skonfigurowany, to by się zapisało Answer ze swoim Question... Co zmienić, żeby powiązanie między Question a Answer działało prawidłowo? Poniżej kod omawianych Entities:
|
|
|
21.10.2011, 20:28:54
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
W Question powinieneś dodać parametr cascade={persist} w definicji relacji.
|
|
|
23.10.2011, 22:55:27
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 25.03.2008 Ostrzeżenie: (0%) |
Mój problem polegał na tym, że ustawiłem w booststrapie, żeby mapowanie czytał z Yamla. I myślałem, że on to i tak tłumaczy sobie z Yamla na doc block annotations w Entities, więc zacząłem zmieniać bezpośrednio tam i się dziwiłem, że zmiany nic nie dają. cascade={persist} też się przydało.
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 03:21 |