Symfony Doctrine QueryBuilder OneToMany filtering



我的存储库中有以下代码

// ProductBundle/Repository/ProductRepository.php
$qb->where($qb->expr()->eq('afp.id', 15));
$qb->andWhere($qb->expr()->eq('afp.id', 14));
return $qb
            ->select('a', 'afp')
            ->leftJoin('a.productFields', 'afp')
            ->getQuery()
            ->getResult();

但我总是得到空返回,但我想得到同时具有两个产品字段的产品(所以或在哪里不好)。

你想使用 MEMBER OF 而不是比较id 。否则,您要查找具有两个不同id值的记录,这当然是不可能的。

这将执行您想要的操作:

$qb->where($qb->expr()->isMemberOf(15, 'a.productFields'));
$qb->andWhere($qb->expr()->isMemberOf(14, 'a.productFields'));

尝试这样的事情(Symfony 5):

$qb->andWhere(':c MEMBER OF a.productFields');
$qb->setParameter('c', 15);

相关内容

  • 没有找到相关文章

最新更新