Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony2][SF][SF2]mapowanie asocjacji, mapowanie na rekordy z tej samej tabeli
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,

Mam entity:

  1. class Team {
  2. private $id;
  3. private $name;
  4. ...
  5. }

i
  1. class Meet {
  2. private $id;
  3. private $team1 (foreign key , id_team);
  4. private $team2 (foreign key , id_team);
  5. ...
  6. }


Potrzebuję zrobić "Podwójną relację/złączenie do tej samej (innej) tabeli" .

W sieci nie mogę jednak znaleźć jak to się robi w Symfony2

Ten post edytował damianooo 12.11.2015, 13:24:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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

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


Ad. 3) Od tego właśnie masz przestrzenie nazw by korzystać z normalnych nazw. Ręki sobie uciąć nie dam ale meet ni cholery nie będzie w tym kontekście synonimem dla meczu/rozgrywki.
Ad. 2) To czy relacja będzie dwu- czy jednokierunkowa to osobna kwestia. (pseudokod)
  1. class Team {
  2. @Id
  3. private $id;
  4.  
  5. @Column
  6. private $name;
  7.  
  8. // opcjonalne, jeżeli chcesz relację dwukierunkową - raczej zbędną?
  9. //@OneToMany(targetEntity=Match, mappedBy=hostTeam)
  10. //private $hostedMatches = new ArrayCollection();
  11. //
  12. //@OneToMany(targetEntity=Match, mappedBy=guestTeam)
  13. //private $guestedMatches = new ArrayCollection();
  14. }
  15.  
  16. class Match {
  17. @Id
  18. private $id;
  19.  
  20. @ManyToOne(targetEntity=Team) // jeżeli jednak będzie dwukierunkowa relacja, to tutaj dodaj jeszcze inversedBy=hostedMatches)
  21. @JoinColumn(nullable=false)
  22. private $hostTeam;
  23.  
  24. @ManyToOne(targetEntity=Team) // analogicznie jak wyżej
  25. @JoinColumn(nullable=false)
  26. private $guestTeam;
  27. }


Ten post edytował Crozin 12.11.2015, 14:57:35
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 2.10.2025 - 19:28