在symfony / doctrine中查询not null OneToMany关系

时间:2017-06-02 09:19:28

标签: php sql symfony doctrine-orm

我正在使用Symfony 3.2。我有一个名为import UIKit class CustomSlider: UISlider { override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { var bounds: CGRect = self.bounds bounds = bounds.insetBy(dx: -10, dy: -15) return bounds.contains(point) } } 的实体,它包含与另一个名为Site的实体的OneToMany关系。

Indication

我想查询class Site { /** * @ORM\OneToMany(targetEntity="IhkBundle\Entity\Indication", mappedBy="site") */ private $indications; } class Indication { /** * @ORM\ManyToOne(targetEntity="IhkBundle\Entity\Site", inversedBy="indications") * @ORM\JoinColumn(name="site_id", referencedColumnName="id") */ private $site; } 可用的所有sites。我只得到一个我不知道该怎么做的ArrayCollection。

Indications

我也尝试使用this answer中的queryBuilder。

$sites = $repository->findAll();
foreach ($sites as $site) {
   $site->getIndications();
}

会抛出以下错误:

$query = $repository->createQueryBuilder('s');
$result = $query->where('s.indications IS NOT NULL')
    ->getQuery()
    ->getResult();

1 个答案:

答案 0 :(得分:1)

似乎可以通过SQL进行简单的连接来解决这个问题,这样的事情应该可行:

$query = $repository->createQueryBuilder('s');
$result = $query->select('p')
    ->join('p.indications', 'i')
    ->getQuery()
    ->getResult();