学说2水合多个相关的对象

时间:2014-06-22 13:59:10

标签: php doctrine-orm

我有两个实体 - 横幅和类别。它们之间有M:N的关系。

我想获得指定类别的横幅广告。但我需要从类别中获取一些数据(我需要关卡,因为我会根据类别级别对Banners进行排序)。

我正在使用查询构建器:

            $queryBuilder->from('App\Model\Entities\Banner','b')
            ->select('b', 'cat')
            ->join('b.categories', 'cat')
            ->where('cat.id IN (:categories)')
            ->orderBy('cat.level', 'DESC')
            ->setParameter('categories', $categoryIds);

我使用的水化方法都没有,我总是只得到一个实体 - 横幅。我认为这是因为Banner与类别有关系,所以Doctrine不是保湿实体类别。

更新:如果我使用SCALAR水合模式,我将从两个实体获取数据。但与之合作是痛苦的:(

我尝试添加select NEW运算符并创建新对象,但在这种情况下我没有得到Banner,我只获得了新对象BannerDTO。

$queryBuilder->addSelect('NEW App\Model\BannerDTO(cat.level, b.id)')

我还尝试过使用PARTIAL查询进行一些实验等等,但它也没有成功:(

是否有可能获得实体及其相关实体?我期待其中包含2个实体的数组 - 横幅和类别。无论如何,Doctrine正在从一个SQL查询中获取数据库中的所有必要数据。

0 个答案:

没有答案