모두. 도시와 POI가 2 개 있습니다. 매핑은 다음과 같습니다Doctrine2는 QueryBuilder에 의해 manyToMany 연관이있는 행을 페치합니다.
class City {
/**
* @ORM\ManyToMany(targetEntity="POI", mappedBy="cities")
* @ORM\OrderBy({"position" = "ASC"})
*/
protected $pois;
및
class POI {
/**
* @ORM\ManyToMany(targetEntity="City", inversedBy="pois")
* @ORM\JoinTable(name="poi_cities")
*/
protected $cities;
내가 QueryBuilder 사용하여 일부 도시와 최소 1 관련이있는 모든 관심 장소를 가져올하고 싶습니다. 아마도 exist() 함수를 사용해야하지만 어떻게 조용하게하는지 알지 못합니다.
이 잘못된 네임 스페이스 분리기에서 제외 syntacically 올바른 ":" "\"(역 슬래시)이어야한다. 그러나, 아마도 더 빠르고 더 명확한 innerJoin은 leftJoin 대신에 where 절을 추가로 사용합니다. – Max
@Max 필자는 분리 기호가 ":"이어야한다고 확신합니다. 실제로 innerJoin을 사용하는 것이 더 빠를 것입니다. 결과는 실제로 그룹화되어야합니다. ". 결과는 실제로뿐만 아니라 그룹화해야한다"그래에 의해 당신이 무슨 뜻인지 몰라,하지만) – gilden
오, 당신이 구분에 대한 맞아, 심포니 2 태그를 간과. – Max