Това е конфигурацията, която искам да имам:
Обект „Акаунт“ с ПРИСЪЕДИНЕНО наследяване към два други обекта: „Автор“ и „АкаунтБекенд“.
Тогава бих искал „AccountBackend“ да има наследяване на SINGLE_TABLE с други два обекта: „Администратор“ и „Избран автор“. Това е начинът, по който ги дефинирам:
Account.php
/**
* @Entity (repositoryClass="Repositories\Account")
* @Table(name="accounts")
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="integer")
* @DiscriminatorMap({"1"="Author","2"="AccountBackend"})
* @HasLifecycleCallbacks
*/
class Account
{
Куратор.php
/**
* @Entity
* @Table(name="accounts_author")
*/
class Author extends Account
{
AccountBackend.php
/**
* @Entity (repositoryClass="Repositories\AccountBackend")
* @Table(name="accounts_backend")
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="integer")
* @DiscriminatorMap({"1"="FeaturedAuthor","2"="Administrator"})
* @HasLifecycleCallbacks
*/
class AccountBackend extends Account
{
FeaturedAuthor.php
/**
* @Entity
*/
class FeaturedAuthor extends AccountBackend
{
Administrator.php
/**
* @Entity
*/
class Administrator extends AccountBackend
{
Когато ги дефинирам, когато се опитам да направя актуализация през CLI, се казва
„Обект „Entities\AccountBackend“ трябва да бъде част от картата на дискриминатора на „Entities\Account“, за да бъде правилно картографиран в йерархията на наследяване. Като алтернатива можете да направите „Entities\AccountBackend“ абстрактен клас, за да избегнете възникването на това изключение.“
Не виждам нищо лошо в начина, по който ги дефинирах, това е първият път, когато се опитвам да имам наследяване на вече наследен обект. Някаква идея какво не е наред? Благодаря!