创建一个继承表以及如何获得超类?象征主义



我有两个实体:Act和Birth with Birth,它扩展了Act like

/**
* Act
*
* @ORMInheritanceType("JOINED")
*
* @ORMEntity(repositoryClass="AppBundleRepositoryActRepository")
*/
class Act
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="type", type="string", length=30, nullable=true)
*/
private $type;
}

/**
* Birth
*
* @ORMTable(name="birth")
* @ORMEntity(repositoryClass="AppBundleRepositoryBirthRepository")
*/
class Birth extends Acte
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
}

当我创建一个出生实例时

new Birth();

我想恢复其超类的实例ie-Act实体!我必须将它分配给另一个类(Individual(,该类带有Individual->setAct((,而不是Individual->setBirth((。。。

我不知道这是否可能,但我想听听其他方法的建议谢谢

只需不在子类中重新定义$id,并在Act中声明$id受保护即可。

然后

$birth = new Birth();
if($birth instanceof Act){
// TRUE!
// you could access $birth->type if it was public
}

相关内容

  • 没有找到相关文章

最新更新