这SINGLE_TABLE inheritade是我想拥有的配置:学说传承 - 从连接表
一个实体“账户”具有JOINED继承到其他两个实体:“作者”和“AccountBackend”。
然后,我希望“AccountBackend”具有SINGLE_TABLE继承与其他两个实体:“管理员”和“FeaturedAuthor”。这是我让他们定义方式:
Account.php
/**
* @Entity (repositoryClass="Repositories\Account")
* @Table(name="accounts")
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="integer")
* @DiscriminatorMap({"1"="Author","2"="AccountBackend"})
* @HasLifecycleCallbacks
*/
class Account
{
Curator.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做一个更新,它说
“实体‘实体\ AccountBackend’必须的一部分鉴别器 'Entities \ Account'的映射将被正确映射到继承 层次中。或者,也可以让“实体\ AccountBackend”的 抽象类,以避免发生的历史此异常。”
我看不出有什么毛病我定义他们的方式,这是我第一次尝试有继承上已经继承实体。的什么错?谢谢!
您好。我在我的Account.php实体 – raygo
有,但您的帐户实体不是SINGLE_TABLE继承的一部分。您需要将AccountBackend添加到您的SINGLE_TABLE的DiscriminatorMap – Peekmo