使用doctrine中的findAll选择不同的结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用doctrine中的findAll选择不同的结果相关的知识,希望对你有一定的参考价值。

我可以使用findAll()函数选择不同的值吗?

我尝试着 :

$province = $em->getRepository("FrontendBundle:Store")->findAll(array('distinct' => true));

但它似乎不起作用。

答案

findall不支持此行为,为了即时进行查询(在单独的存储库类中更好),您可以执行以下操作:

/** @var  $qb  DoctrineORMQueryBuilder*/
$qb = $em->getRepository("GerlaFrontendBundle:Store")->createQueryBuilder("p");

$province = $qb->select("p")
    ->distinct(true)
    ->getQuery()
    ->getResult();

希望这有帮助

另一答案
$province = $em->getRepository("FrontendBundle:Store")->findBy(array('distinct' => true));

看到这个http://symfony.com/doc/current/book/doctrine.html#fetching-objects-from-the-database

祝一切顺利

另一答案

如果要使用findAll()并将其设置为distinct,请覆盖Entity Repository文件中的findAll()并将此方法添加到其中。

public function findAll() {
   return $this->findBy(array(), array(array('distinct' => TRUE));
}

我主要用于在findAll()上设置顺序,但它也适用于不同的。

以上是关于使用doctrine中的findAll选择不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何对 findAll Doctrine 的方法进行排序?

Symfony4 / Doctrine,如何选择“不同”的对象? getResult() 返回字符串数组,而不是对象数组

Doctrine 存储库返回空结果集

从doctrine2中的代理对象获取“true”对象

避免 Doctrine 返回完整的相关实体

带有 findAll() 方法的 Knp 分页器