DQL允许Nullable加入?

时间:2014-08-29 17:02:08

标签: php mysql symfony doctrine-orm dql

在我的实体' Item'中,有一个ArrayCollection属性称为" products" (实体'产品')可以为空

我需要在一个DQL调用中获取所有产品信息(空或不空),以获得' Item'实体

        $query = $this->getEntityManager()->createQueryBuilder();
        $query->select(['v', 'p'])->from($this->getEntityName(), 'v')
            ->join('v.products', 'p')
            ->orderBy('v.datePublished', 'DESC')
            ->setMaxResults($limit);

这里的问题是,返回的唯一记录是其中至少包含一个产品的记录。我还需要返回包含空产品的商品。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,所以......这就是所需要的:

    $query = $this->getEntityManager()->createQueryBuilder();
    $query->select(['v', 'p'])->from($this->getEntityName(), 'v')
        ->join('v.products', 'p')
        ->orderBy('v.datePublished', 'DESC')
        ->setMaxResults($limit);

变为

    $query = $this->getEntityManager()->createQueryBuilder();
    $query->select(['v', 'p'])->from($this->getEntityName(), 'v')
        ->leftJoin('v.products', 'p')
        ->orderBy('v.datePublished', 'DESC')
        ->setMaxResults($limit);

我很高兴现在回到我的生活中。