【问题标题】:How can I use 'foreign key' on doctrine?如何在教义上使用“外键”?
【发布时间】:2013-04-12 11:28:56
【问题描述】:

我正在制作 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 的学生。 我该如何为此目的编写注释? (多对多?)

我研究过,但找不到适合教义注释的文档。

非常感谢

【问题讨论】:

    标签: database symfony doctrine-orm


    【解决方案1】:

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

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

    在 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 非常适合您正在寻找的目的 :)

    【讨论】:

    猜你喜欢
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多