我想在实体用户中使用学说的关系OneToone。例如。用户有2个考试 - 首先和纠正措施。所有考试都在一个表中,但带有flag is_corractive 。我如何为这两种用户使用OneToone关系?
您可以使用单个表sashitance 为此。
1(创建实体 firstExam :
use DoctrineORMMapping as ORM;
/**
* @ORMEntity
* @ORMTable(name="exam_table_name")
* @ORMInheritanceType("SINGLE_TABLE")
* @ORMDiscriminatorColumn(name="is_corrective", type="integer")
* @ORMDiscriminatorMap({"0" = "FirstExam", "1" = "CorrectiveExam"})
*/
class FirstExam
{
/**
* @ORMColumn(type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
}
2(和实体 requortiveExam :
use DoctrineORMMapping as ORM;
/**
* @ORMEntity
*/
class CorrectiveExam extends FirstExam
{
}
3(然后您可以在用户实体中定义2个关系:
/**
* @ORMOneToOne(targetEntity="FirstExam")
*/
private $firstExam;
/**
* @ORMOneToOne(targetEntity="CorrectiveExam")
*/
private $correctiveExam;
使用了两个实体的同一表,并且" IS_Corractive"列用作歧视器。