Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 Doctrine2 Symfony2分页器与orderBy一起失败_Php_Mysql_Symfony_Doctrine Orm - Fatal编程技术网

Php Doctrine2 Symfony2分页器与orderBy一起失败

Php Doctrine2 Symfony2分页器与orderBy一起失败,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,在回购协议中使用此代码 $builder = $this->createQueryBuilder("s"); $builder->addOrderBy("s.name", "ASC"); $pagi = new Paginator($builder->getQuery(), true); $data = $pagi->getIterator()->getArrayCopy(); 导致此错误 SQLSTATE[HY000]:一般错误:ORDER BY子

在回购协议中使用此代码

 $builder = $this->createQueryBuilder("s");

 $builder->addOrderBy("s.name", "ASC");

 $pagi = new Paginator($builder->getQuery(), true);

 $data = $pagi->getIterator()->getArrayCopy();
导致此错误

SQLSTATE[HY000]:一般错误:ORDER BY子句的3065表达式#1 不在选择列表中,引用列“dctrn\u result.name\u 5”,其中 不在选择列表中;这与中的DISTINCT命令不兼容 AppBundle:Schools/Search:results\u list.html.twig,第33行

name
s
表的有效列名。这确实有效,但移动到新机器并安装新版本的MySQL完全破坏了这一点。有一些参考资料涉及此问题

但是除了移除同样失败的
s.
之外,没有其他实际的解决方案

 $builder->addOrderBy("name", "ASC");
我完全不知道该怎么办,因为这似乎是Doctrine2的paginator中一个相当重要的问题


我使用的是MySQL 5.7.9。

对于给定的错误,应该使用显式select语句

 $builder = $this->createQueryBuilder("s");
 $builder->select("s")
         ->orderBy("s.name", "ASC");

但是如果您想在许多不同的情况下使用分页,我建议您使用。该组件更灵活。

我认为您必须将mySql版本降级到5.6

谢谢。对该捆绑包进行重构也很有效,而且非常简单。