2013-04-12 9 views
9

Sto creando il sistema di gestione delle lezioni su symfony2 e doctrinaCome posso usare "chiave esterna" sulla dottrina?

Sono confuso nell'usare la chiave esterna nella dottrina.

/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; 
    . 
    . 
} 

Ogni 'lezione' ha un insegnante registrato in User.php.

Come posso scrivere annotazioni per questo scopo?

Sto anche pianificando che ogni lezione abbia più studenti da/Entità/Utente. Come posso scrivere annotazioni per questo scopo? (ManyToMany?)

Ho cercato, ma non sono riuscito a trovare buoni documenti per l'annotazione di dottrina.

grazie mille

risposta

8

Ecco alcuni cheat sheet per le annotazioni dottrina: link

per il vostro problema, è necessario definire le variabili in ogni lato delle vostre associazioni.

In 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; 

In User.php:

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

E sì, ManyToMany è un bene per lo scopo che state cercando :)

+0

Thanks.GreenLeaf esso funziona bene per il mio scopo, Il link indicato è utile pure. – whitebear

+0

il collegamento mi dà un 404 – deltree

+0

Ho aggiornato il collegamento. Ecco il link completo: http://www.elao.com/fr/blog/symfony-2-doctrine-2-cheat-sheets – Pierrickouw

Problemi correlati