2013-10-01 3 views
0

저는 독트린을 아주 좋아합니다. 그리고 특정 작업을 수행하고 싶습니다.Doctrine2를 사용하여 관련 테이블 레코드를 계산하는 방법

내가 jobs 테이블에 category_id 열을 가지고 있습니다. 분명히 categories 테이블입니다. 내가 getWithAllJobs 함수의 결과를 얻을 때

이 Symfony2, 나는 지금이 저장소

<?php 

namespace Ibw\JobeetBundle\Repository; 

use Doctrine\ORM\EntityRepository; 

class CategoryRepository extends EntityRepository 
{ 
    public function getWithAllJobs() 
    { 
     $qb = $this->createQueryBuilder('c') 
        ->select('c, j') 
        ->leftJoin('c.jobs', 'j'); 
     return $qb->getQuery()->getResult(); 
    } 

} 

을 가지고, 그것은 관련된 어떤 작업이없는 경우에도 모든 범주를 반환합니다.

관련 작업이있는 카테고리 만 반환하고 싶습니다. c.jobs을 계산하고 c.jobs 이상의 카테고리를 0 이상으로 선택하려고합니다. 교리에서 그것을 어떻게 하는가?

그리고 더 좋은 방법이 있다면 무엇입니까?

답변

1

원하는 작업을 수행하는 유일한 방법은 left join 대신 inner join을 사용하는 것입니다. 코드는 다음과 같아야합니다.

$qb = $this->createQueryBuilder('c') 
       ->select('c, j') 
       ->innerJoin('c.jobs', 'j'); 
관련 문제