0

我对学说很陌生,我想执行某项任务。

我有jobscategory_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 或其他内容的类别。如何在教义上做到这一点?

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

4

1 回答 1

1

做你想做的事情的唯一正确方法是使用inner join而不是left join. 您的代码应如下所示:

    $qb = $this->createQueryBuilder('c')
                ->select('c, j')
                ->innerJoin('c.jobs', 'j');
于 2013-10-01T15:04:29.723 回答