Я новичек в 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);
то получаю такой эксепшн: