![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Nieautoryzowani Postów: 6 Pomógł: 0 Dołączył: 19.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Taka sytuacja. Powiedzmy że chcecie zrobić następującą strukturę encji:
1. Klasa A implementuje interface I 2. Klasa B implementuje interface I 3. Klasa C Klasa C posiada jakieś własności, wśród których jedna z nich może przechowywać instancje obiektu klasy A lub instancje obiektu klasy B, czyli ustawiam sobie typ tej własności w klasie C na interface I. Problem pojawia się w momencie, kiedy chcę pobrać dane z DB ponieważ muszę w yaml'u zdefiniować jaki obiekt powinien zostać utworzony podczas ustawiania tej własności. Jeśli ustawię tam typ na klasę A to zawsze będzie tam tworzyć obiekty klasy A - tak samo z klasą B. Nie mogę podać tam interface'u I, bo jak każdemu wiadomo, nie można napisać "new I". Co powiedzieć doctrine, żeby on wiedział jaki obiekt ma utworzyć - A lub B. Wydaje mi się, że powinien tu zostać utworzony złożony klucz obcy (ID oraz typ, który będzie określać jaka klasa powinna zostać wykorzystana do utworzenia obiektu). Jak to wszystko skonfigurować, żeby doctrine utworzył taki klucz? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Jeśli masz aż taką zależność, to śmiem twierdzić, że wczesniej podeszłeś do problemu troszkę inaczej, niż można było to rozwiązać, i teraz wyszedł kolejny problem.
Podałeś powyżej przykład bez podawania jego konkretnego zastosowania. Mógłbyś napisać czym tak na prawdę są te klasy i czym się zajmują? Może zamiast rozwiązywać ten problem, można sprawić, żeby zniknęła jedna z tych klas (jeśli w ogóle się da) - w tedy nie będzie tego problemu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 12:53 |