【发布时间】:2015-06-30 00:07:15
【问题描述】:
我为
定义了一个映射/**
* Identite entity
* @ORM\Entity
* @ORM\Table(name="identite")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"identite" = "Identite","candidat" = "Candidat","consultant"="Consultant","staff"="Staff" })
*/
class Identite extends ObjetEtat{
/**
* @var integer
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="nomidentite", type="string", length=200, nullable=true)
*/
private $nomidentite;}
我有超类的映射:
/**
* Identite entity
* @ORM\Entity
* @ORM\Table(name="objetetat")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discrimin", type="string")
* @ORM\DiscriminatorMap({"objetetat" = "ObjetEtat","identite" = "Sigmatis\SigBundle\Entity\Identites\Identite" })
*/
class ObjetEtat {
//put your code here
/**
* @var integer
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id; }
这是我层次结构的第三层:
/**
* Candidat entity
* @ORM\Entity
* @ORM\Table(name="candidat")
*/
class Candidat extends Identite {
}
更新我的架构后:我没有找到我的表 Identite 的字段“discr”。我错过了什么吗?
【问题讨论】:
-
您的“objetetat”表中有“discrimin”列吗?
-
是的,那里存在“discrimin”列,当我插入一个对象(候选人或员工)时,歧视的值取:候选人或员工。但我需要的是:discrimin 将采用值“identite”,并且在 Identite 表中,我想要一个名为 discr 的列,我将在其中拥有:candidat 或人员
-
请问您对此有什么想法吗??
标签: php symfony orm doctrine-orm mapping