Добавете преобразуване на колони към разширен клас в Doctrine

Имам PHP обект, който наследява от базов клас, съдържащ се в библиотека, която не мога да променя. Бих искал да съпоставя свойства, които са наследени от базовия клас, към колони на база данни. Тъй като анотацията @Column трябва да се използва в поле на метод, не мога да дефинирам наследените колони по този начин. Използването на @AttributeOverrides също няма да работи, тъй като тогава ще трябва да имам достъп до базовия клас, за да го направя MappedSuperclass.

Пример за класове:

class LibraryClass
{
    protected $someProperty;
}


/**
 * @Entity
 * @Table(name="child")
 */
class Child extends LibraryClass
{
    /**
     * @Column(name="some_property", type="string")
     * Somehow target $this->someProperty
     */     
}

Има ли друг начин за картографиране на родителски свойства без прехвърляне на свойствата между класове и без използване на наследяване?


person Villermen    schedule 19.06.2017    source източник


Отговори (1)


Можете да използвате картографиране с XML или YML вместо анотации. Тук е документирано.

https://symfony.com/doc/current/doctrine.html#add-mapping-information

person ste    schedule 26.06.2017
comment
Бих искал обаче да се придържам към съпоставянето на анотации за другите обекти и това не изглежда възможно. - person Villermen; 26.06.2017