12

我正在制作关于 symfony2 和教义的课程管理系统

我很困惑在教义中使用外键。

/Entity/User.php

class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     *@ORM\OneToOne(targetEntity="Acme\UserBundle\Entity\Lesson", inversedBy("teacher"))
     */
    protected $id;
    .
    .
}

/Entity/Lesson.php

class Lesson
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     *
     * @ORM\OneToOne(targetEntity="Acme\UserBundle\Entity\User", inversedBy("id"))
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    private $teacher;
    .
    .
}

每个“课程”都有一位在 User.php 中注册的老师。

我该如何为此目的编写注释?

我还计划每节课都有多个来自 /Entity/User 的学生。我该如何为此目的编写注释?(多对多?)

我进行了研究,但找不到用于学说注释的好文档。

多谢

4

1 回答 1

14

这里有一些教义注释的备忘单:链接

对于您的问题,您需要在关联的每一侧定义变量。

在 Lesson.php 中:

/**
 * @ORM\OneToOne(
 *     targetEntity="Acme\UserBundle\Entity\User", 
 *     inversedBy="lessons*removethis : name of the variable in user.php*"
 * )
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */
private $teacher;

在 User.php 中:

/**
 * @ORM\OneToOne(
 *     targetEntity="Acme\UserBundle\Entity\Lesson", 
 *     mappedBy="teacher*removethis : name of the variable in lesson.php*"
 * )
 */
private $lessons;

是的,ManyToMany 非常适合您正在寻找的目的:)

于 2013-04-12T11:43:49.750 回答