2013-10-01 57 views
0

我對教條很陌生,而且我想執行某項任務。如何使用Doctrine2對相關表格記錄進行計數

我有jobs表有category_id列,而明顯有categories表。

在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(); 
    } 

} 

現在,當我得到getWithAllJobs函數的結果,它返回的所有類別,即使它沒有相關的工作。

我想只返回相關作業的類別。我正在考慮計算c.jobs並選擇c.jobs大於0的分類。如何在教條中做到這一點?

如果有更好的方法,它是什麼?

回答

1

唯一正確的做法是使用inner join而不是left join。您的代碼應如下所示:

$qb = $this->createQueryBuilder('c') 
       ->select('c, j') 
       ->innerJoin('c.jobs', 'j'); 
相關問題