2013-04-28 2 views
0

Doctrine 2.X ManyToMany 연관에 근거한 질문이 있습니다. 내 데이터 구조 내 News.php 중ManyToMany 연관 검색어

news: 
    id: INT 

program_site: 
    id: INT 

news_program_site: 
    newsId: INT 
    programSiteId: INT 

추출 :

/** 
* @ORM\ManyToMany(targetEntity="ProgramSite") 
* @ORM\JoinTable(name="news_program_site", 
*  joinColumns={@ORM\JoinColumn(name="newsId", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="programSiteId", referencedColumnName="id")} 
* ) 
*/ 
private $programSites; 

내 질문 : 는이 식별자 X 용 news_program_site에서 엔티티를 가진 모든 뉴스를 얻을 수 있나요

예 : 당신의 도움에 대한

SELECT * FROM news AS n INNER JOIN news_program_site AS s ON s.newsId = n.id WHERE s.programSiteId IN(2, 3) 

감사합니다!

접견, 마크 당신은 SQL을하고

답변

0

. 교리는 다릅니다. 다 대다 테이블과 직접 상호 작용하지 않습니다. 교리는 그것을 처리합니다. 나는 당신이 원하는 쿼리가 생각 :

$query = $em->createQuery("SELECT n FROM news n JOIN program_site ps"); 
$users = $query->getResult(); 

이 그럼 당신은 엔티티로 뉴스를 처리 및 뉴스 엔티티와 관련된 ProgramSites의 목록 news.getProgramSite()를 호출한다. 쿼리에 where 절을 추가 할 수 있습니다 (예 : 뉴스 항목을 특정 프로그램 사이트에 가입 시키려면).하지만 설명에 따르면 필자는 필요하다고 생각하지 않습니다.

이것은 SQL과 근본적으로 다른 패러다임이며 익숙해집니다.