Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF][Symfony2][SF2] Jak dostać się do entity z entity z innego bundla
K0nio
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

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


Witam , borykam się z takim problemem mam dwa bundle
CODE
Surgery/PatientBundle/Entity/Patients
Surgery/LoginBundle/Entity/User

Chciałbym wykonać nastepującą czynność.
Użytkownik się rejestruje dostaje ID za to odpowiada entity User a po zalogowaniu może wypełnić deklarację za to odpowiada Patients. Chciałbym, w entity Patients móc pobrać id Usera , próbowałem odwołaś się poprzez wstawienie
use Surgery\LoginBundle\Entity\User; jednak nie pomogło. Czy istnieje sposób by w entity Patients odwołać się jakoś w ten sposób getUser()-getId() ? Czy wymaga to innego zastosowania ? Rejestracja i logowanie Usera działa.
Ktoś ma jakieś wskazówki ?

Go to the top of the page
+Quote Post
minolone
post
Post #2





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Może takie coś pomoże

  1. public function setUser(\Surgery\LoginBundle\Entity\User $id)
  2. {
  3. $this->user = $id;
  4. }
  5.  
  6. public function getUser()
  7. {
  8. return $this->user;
  9. }
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Pokaż jakiś kod. Z punktu widzenia Doctrine to dwie encje w dwóch różnych przestrzeniach nazw (nie bundalch, które z tym projektem mają niewiele wspólnego), a z tym Doctrine radzi sobie bez najmniejszego problemu.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Do entity przecież możesz się podłączać tak:

  1. $entityManager = $this->getDoctrine()->getEntityManager();
  2. $entities = $entityManager->getRepository('ApiRestServiceBundle:Users')->findAll();


i wtedy pobierać jakieś dane wykorzystując dane entity, a w nim jest deklaracja, z której tabeli korzystać.
Go to the top of the page
+Quote Post
K0nio
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

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


A więc tak mam dwa entity


  1. namespace Surgery\LoginBundle\Entity;
  2. class User extends BaseUser
  3. {
  4. private $id;
  5. }

oraz
  1. namespace Surgery\PatientBundle\Entity;
  2. class Patients
  3. {
  4. private $id; //pk
  5. private $user_id; ///fk
  6.  
  7. }

Do tego mam wygenerowane settery i gettery poprzez komende z konsoli.
Opiszę to jakbym ja to widział.
Użytkownik się rejestruje dostaje id ( User). Po zalogowaniu ma wypełnić formularz i po przesłaniu oraz przejściu walidacji id zalogowanego użytkownika ma być przesłane do user_id.
Próbowałem robić relację OneToOne między entity ale coś robię źle albo wogóle trzeba się do tego inaczej zabrać.
Mam nadzieję , że troche to jasniej napisałem , wiem że mam kłopoty z tłumaczeniem



Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. ORM - Object-relational mapping - czyli nie przekazujesz żadnych ID tylko całe obiekty (patrz: Patient::$user).
2. Jeżeli masz zalogowanego użytkownika, to jaki problem stanowi jego przekazanie do nowej instancji obiektu Patient?
3. Relacje OneToMany masz dokładnie opisaną w dokumentacji, wraz z całymi przykładami kodu.
Go to the top of the page
+Quote Post
K0nio
post
Post #7





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

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


Udało mi się wynik jest taki jak oczekiwałem

Zrobiłem relację OneToOne między User a Patients , utworzyłem z konsoli gettery i settery a następnie jeżeli było zdarzenie POST przesyłam
  1. $entity->setUser($this->getUser());

i dodaje mi id usera w tabelę Patients.
Nie wiem czy to dobre rozwiązanie , nie wiem czy to dobre odczucie bo rozpoczynam zabawę z Symfony2 ale mocno ułatwia pisaniem kodu myślałem, że będę musiał się mocno spisać i natrudzić . Dziękuje za nie podanie kodu ;D na co na początku liczyłem bo nic tak nie cieszy jak własnoręczne dojście do rozwiązania zagadki
Go to the top of the page
+Quote Post

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: 21.08.2025 - 06:30