在 symfony / 学说中查询非空 OneToMany 关系

亚历山大·哈尔比奇

我正在使用 Symfony 3.2。我有一个名为的实体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地方Indications都可用。我只得到一个我不知道该怎么做的 ArrayCollection。

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

我也尝试在这个答案中使用 queryBuilder

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

这会引发以下错误:

[Semantical Error] line 0, col 46 near 'indications IS': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
m1n0

似乎这可以通过 SQL 通过做一个简单的连接来解决,这样的事情应该可以工作:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章