在ZF3中,使用教义OneToone关系与条件



我想在实体用户中使用学说的关系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"列用作歧视器。

相关内容

  • 没有找到相关文章