Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][symfony2] zapis dwóch obiektów a wyciąganie id pierwszego
adalgrim
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 8.11.2005
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Witam,

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:

  1. $entity = new Klasa1();
  2. ..
  3. bindowanie
  4. ...
  5. walidacja
  6. ....
  7. $em = $this->getDoctrine()->getEntityManager();
  8. $em->persist($entity);
  9.  
  10. $inst = new Klasa2();
  11. $inst->setIdAddressContactInfo($entity->getId());
  12. $em->persist($inst);
  13.  
  14. $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ę smile.gif

Ten post edytował adalgrim 23.06.2012, 13:26:42
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 09:00