bizzi
@bizzi
junior php web developer

Почему не работает связь manyToMany в symfony 2?

Есть две таблицы, company и rubric, а также таблица связей company_rubric, каждая компания может иметь несколько рубрик и каждая рубрика также может иметь несколько компаний. связаны они по id.
Вот что я прописала(вставляю только то что имеет отношение к связям):

RG\JuristBundle\Entity\Company:
    type: entity
    table: company

    manyToMany:
        rubrics:
            targetEntity: Rubric
            inversedBy: companies
            joinTable:
               name: jurist.company_rubric


RG\JuristBundle\Entity\Rubric:
    type: entity
    table: rubric
   
    manyToMany:
        companies:
            targetEntity: Company
            mapped_by: rubrics
            joinTable:
              name: jurist.company_rubric
              joinColumns:
                rubric_id:
                  referencedColumnName: id
              inverseJoinColumns:
                company_id:
                  referencedColumnName: id


в соответствующие Entity добавила:

class Rubric{
private $companies;

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

class Company{
    private $rubrics;
    public function __construct()
    {
        $this->rubrics = new ArrayCollection();
    }
}


Когда в контроллере пытаюсь получить рубрики или компании вот так:

$em = $this->getDoctrine()->getEntityManager();
$entity = $em->getRepository('RGJuristBundle:Rubric')->find($id);

Массивы которые должны наполняться данными благодаря связям, остаются пустыми. Возможно что то прописала неверно или что то не так делаю? С симфони раньше дело не имела, поэтому сложно разобраться.
  • Вопрос задан
  • 504 просмотра
Пригласить эксперта
Ответы на вопрос 2
slimus
@slimus
Symfony, Golang
0. есть тэг для вставки кода
1. почистить кеш
2. ./app/console doctrine:schema:validate и показать результат
Ответ написан
banderos120
@banderos120
Играю на балалайке
manyToMany:
        rubrics:
            targetEntity: Rubric
            mappedBy: companies

targetEntity: Company
inversedBy: rubrics
joinColumns:
   name: rubric_id
   referencedColumnName: id
inverseJoinColumns:
   name: company_id
   referencedColumnName: id

doctrine-orm.readthedocs.org/projects/doctrine-orm...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы