2013-04-12 3 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.

Как я могу написать аннотацию для этой цели?

Я также планирую, что каждый Урок имеет несколько учеников из/Сущность/Пользователь. Как я могу написать аннотацию для этой цели? (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; 

И да, ManyToMany хорошо для этой цели вашего ищете :)

+0

Thanks.GreenLeaf него хорошо работает для моей цели, Данная ссылка также полезна. – whitebear

+0

ссылка дает мне 404 – deltree

+0

Я обновил ссылку. Вот полная ссылка: http://www.elao.com/fr/blog/symfony-2-doctrine-2-cheat-sheets – Pierrickouw

Смежные вопросы