php - Doctrine2 Symfony2 分页器因 orderBy 而失败

标签 php mysql symfony doctrine-orm

在 Repo 中使用此代码

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

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

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

 $data = $pagi->getIterator()->getArrayCopy();

导致这个错误

SQLSTATE[HY000]: General error: 3065 Expression #1 of ORDER BY clause is not in SELECT list, references column 'dctrn_result.name_5' which is not in SELECT list; this is incompatible with DISTINCT") in AppBundle:Schools/Search:results_list.html.twig at line 33.

names 表的有效列名。这确实有效,但是移动到新机器并安装新版本的 MySQL 已经完全打破了这一点。这个问题有一些引用http://www.doctrine-project.org/jira/browse/DDC-1800

但除了删除 之外没有实际的解决方案。 也失败了

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

我完全不知道该做什么,因为这似乎是 Doctrine2 分页器中的一个相当大的问题。

我正在使用 MySQL 5.7.9。

最佳答案

对于给定的错误,显式选择语句应该完成这项工作。

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

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

关于php - Doctrine2 Symfony2 分页器因 orderBy 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900219/

相关文章:

php - 使用 csv 上的文件指针

Php - 如何将多个键值数组转换为 | (管道)分隔字符串

php - 删除图像行并从目录中删除图像

javascript - 如何使用php和mysql数据库在谷歌地图上显示多个位置

mysql - 如何确保所有 mysql 查询都被执行或如果其中一个查询失败则回滚到原始状态?

mysql - MySQL WHERE 子句中的当前日期

Symfony2 类型为 "object or array"的预期参数,给定为 "string"

mysql - 我应该创建一个新表吗?

php - Symfony2/Doctrine 模型通过相关 ID 和类型将单个表连接到多个其他表

php - Symfony 2 上的 Endroid/Qrcode 和 __DIR__ const 出现内部服务器错误