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?