2013-04-12 13 views
9

我正在使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的多個學生。 如何爲此寫入註釋? (ManyToMany?)

我已經研究過了,但是我找不到用於教義註釋的好文檔。

非常感謝

回答

8

這裏是一些備忘單教義註釋: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; 

是的,多對多有利於您正在尋找:)

+0

Thanks.GreenLeaf它的目的適用於我的目的, 給定的鏈接也很有用。 – whitebear

+0

該鏈接給我一個404 – deltree

+0

我更新了鏈接。這裏是完整的鏈接:http://www.elao.com/fr/blog/symfony-2-doctrine-2-cheat-sheets – Pierrickouw