我有两个实体: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
}