Mam mały problem z zapisem dwóch obiektów przy założeniu, że obiekt2 ma korzystać z id właśnie dodanego obiektu1. Mam tak:
$entity = new Klasa1(); .. bindowanie ... walidacja .... $em = $this->getDoctrine()->getEntityManager(); $em->persist($entity); $inst = new Klasa2(); $inst->setIdAddressContactInfo($entity->getId()); $em->persist($inst); $em->flush();
Teraz tak. Jak zrobię em->flush() przed deklaracją Klasy2 (oraz zakomentuje linie z $inst) to obiekt zapisuje poprawnie i redirectuje mnie na stronę, która w adresie ma $entity->getId()
Moje pytanie brzmi jak wyciągnąc to id przed flushem (próbowałem dwa flushe, również nei działa), żeby Klasa2 miała zapisany w sobie id Klasy1. Błąd dostaję z MySQLa, że wartośc id Klasy 2 nie może być null (takie mam wymaganie, dlatego chciałem ręcznie przypisać to id przed zapisem)
Z góry dzięki!
-- UPDATE, rozwiązanie częściowe --
Zamiast zapisywać samo id od klasy1, można do klasy2 przekazać cały obiekt klasy1 (trzeba odpowiednie pola dodać oczywiście do Entity) - ALE! - jest to tylko częściowe rozwiązanie i niejako pisanie/przekazywanie podwójne, bo samo skoro generator entity tworzy nam setery/getery, to teoretycznie powinno się dać dodać obiekt niezależnie od innego obiektu wyłącznie z ustawianiem odpowiednich setów.
Jeżeli znacie lepsze rozwiązanie - podzielcie się
