реляционные таблицы доктрины symfony

У меня есть таблицы Students, Classrooms и Student_Classroom.

Students:

 - ID  
 - Name  
 - Year_born  

Classroom:

 - ID  
 - Name  
 - Number  
 - Floor  

Student_Classroom:

 - ID
 - ID_Student
 - ID_Classroom

Как это сделать с помощью Symfony2 и Doctrine? Использование аннотаций.


person Ruben Sillero    schedule 05.04.2014    source источник
comment
Что вы пробовали? Вы создали какой-либо реактивный самолет?   -  person ferdynator    schedule 05.04.2014


Ответы (1)


Мне это кажется очень простым n:m отношением. Поэтому ваши 2 объекта должны выглядеть примерно так:

/** 
 * @ORM\Entity
 */
class Student
{
    /** 
     * @ManyToMany(targetEntity="Classroom")
     */
    private $classrooms;

    public function __construct()
    {
        $this->classrooms = new ArrayCollection();
    }
}

а также

/**
 * @ORM\Entity
 */
class Classroom
{
    /** 
     * @ManyToMany(targetEntity="Student")
     */
    private $students;

    public function __construct()
    {
        $this->students = new ArrayCollection();
    }
}

Убедитесь, что вы добавили необходимые операторы use в начало обоих файлов классов сущностей. Doctrine автоматически сгенерирует таблицу соединений n:m и обработает все необходимые отношения. Подробнее об отношениях n:m читайте в доктрине. документация. Также ознакомьтесь с этими вопросами и ответами на SO.

person ferdynator    schedule 05.04.2014