Php 在条令中使用findAll选择不同的结果
我可以使用Php 在条令中使用findAll选择不同的结果,php,symfony,doctrine-orm,doctrine,Php,Symfony,Doctrine Orm,Doctrine,我可以使用findAll()函数选择不同的值吗 我正在努力: $province = $em->getRepository("FrontendBundle:Store")->findAll(array('distinct' => true)); 但它似乎不起作用。findall不支持这种行为,为了动态进行查询(在单独的存储库类中更好),您可以执行以下操作: /** @var $qb \Doctrine\ORM\QueryBuilder*/ $qb = $em->ge
findAll()
函数选择不同的值吗
我正在努力:
$province = $em->getRepository("FrontendBundle:Store")->findAll(array('distinct' => true));
但它似乎不起作用。findall不支持这种行为,为了动态进行查询(在单独的存储库类中更好),您可以执行以下操作:
/** @var $qb \Doctrine\ORM\QueryBuilder*/
$qb = $em->getRepository("GerlaFrontendBundle:Store")->createQueryBuilder("p");
$province = $qb->select("p")
->distinct(true)
->getQuery()
->getResult();
希望这有帮助
$province = $em->getRepository("FrontendBundle:Store")->findBy(array('distinct' => true));
你也看到了吗
最好的如果您想使用findAll()并使其与众不同,请在实体存储库文件中重写findAll(),并将此方法添加到其中
public function findAll() {
return $this->findBy(array(), array(array('distinct' => TRUE));
}
我主要使用它来设置findAll()上的order by,但它也适用于distinct。您能详细说明一下吗?您是否收到某种错误?它没有选择distinct。它继续选择所有结果。从技术上讲,它返回的是distinct,因为每个存储实体都是不同的实体。但我知道你不是这个意思。为了应用sql distinct,您必须进行自定义查询。findAll不支持它。
findAll
方法不接受任何参数。这只是findBy(array())的一个别名。这是一个开始,但我怀疑他真的想从存储库中获得一个不同的省份列表。您的代码中有一对不匹配的括号。