[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Doctrine 2, проблема с many-to-many
Invis1ble
Привет.
Я новичек в doctrine, по мере написания проекта изучаю её API.
Имеется:
/**
*
@ORM\Table(name="doctor")
*
@ORM\Entity
*/

class Doctor
{

/**
*
@var Collection
*
*
@ORM\ManyToMany(targetEntity="Speciality", inversedBy="doctors")
*
@ORM\JoinTable(name="doctors_specialities", joinColumns={@ORM\JoinColumn(name="doctor_id", referencedColumnName="id")}, inverseJoinColumns={@ORM\JoinColumn(name="speciality_id", referencedColumnName="id")})
*/

protected $specialities;

и
/**
*
@ORM\Table(name="speciality")
*
@ORM\Entity
*/

class Speciality
{
/**
*
@ORM\ManyToMany(targetEntity="Doctor", mappedBy="specialities")
*/

protected $doctors;

Есть страница с фильтром и сортировкой, в результате должна быть (внезапно!) выборка из doctors с фильтрацией по нескольким выбранным критериям и сортировкой по некоторым полям. И всё бы хорошо, но когда я пытаюсь отфильтровать по специализациям в контроллере:
        if ('all' !== $speciality) {
$where['specialities'] = $doctrine->getRepository('ApplicationFrontofficeBundle:Speciality')->findOneBySlug($speciality);
}

// ...
$doctors = $doctorRepository->findBy($where, $orderBy);

то получаю такой эксепшн:
Цитата
ContextErrorException: Notice: Undefined index: joinColumns in C:\src\web\doctor\www\vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\BasicEntityPersister.php line 1665

Версия doctrine/orm - v2.4.2.
Погуглив, нахожу, что я не одинок в проблеме, и судя по всему это баг. Единственное решение, что я нашел - http://stackoverflow.com/questions/1833128...ctrine-symfony2. Я удивлен, что в багтрекере репорт висит уже более полугода и фикса что-то не видно http://www.doctrine-project.org/jira/browse/DDC-2988. Да и сообщество молчит в основном, судя по найденным мной топикам на разных ресурсах. Может это все-таки не баг, а я накосячил где-то?
А как вы решаете эту проблему? Тоже создаете кастомные репозитории и методы на каждый чих? И как лучше сделать в моем случае?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.