Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在条令中使用findAll选择不同的结果_Php_Symfony_Doctrine Orm_Doctrine - Fatal编程技术网

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())的一个别名。这是一个开始,但我怀疑他真的想从存储库中获得一个不同的省份列表。您的代码中有一对不匹配的括号。