Есть 2 сущности. City и Service.
В Service:
/**
* @var ArrayCollection
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\City", inversedBy="services")
* @ORM\JoinTable(
* name="city_service_rel",
* joinColumns={@ORM\JoinColumn(name="service_id", referencedColumnName="id", onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="city_id", referencedColumnName="id", onDelete="CASCADE")}
* )
*/
protected $cities;
В City:
/**
* @var ArrayCollection
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\City", mappedBy="cities")
*/
protected $services;
Пытаюсь через query builder написать запрос, чтобы получить все сервисы, которые есть в определенном городе.
$qb = $this->createQueryBuilder('service');
$qb
->where('service.active = true')
->andWhere($qb->expr()->isNotNull('service.representative'))
->innerJoin(
'service.cities',
'cities',
'WITH',
'cities.city_id = :id'
)
->setParameter('id', $cityId)
;
В итоге доктрина не может найти связанные колонки, а если заджойнить service.cities, то он пытается найти какие-то свойства в классе City.