我对学说很新,我想完成一项任务。
我的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的类别。如何在学说中做到这一点?
如果有更好的方法,那是什么?
答案 0 :(得分:1)
执行所需操作的唯一正确方法是使用inner join
代替left join
。您的代码应如下所示:
$qb = $this->createQueryBuilder('c')
->select('c, j')
->innerJoin('c.jobs', 'j');