- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在一个项目中使用 Zf 1.10,并且一直在使用 Zend_Paginator 和 Zend_DbTable 查询非常成功,直到现在为止。
查询需要一个 DISTINCT 关键字来删除由联接创建的重复行,但是当我添加它时,分页器错误地显示了两页结果的导航,而实际上只有一页结果。一些挖掘表明它正在执行两个查询,一个用于我之后的结果集(77 行),另一个用于获取计数。但是 Zend 魔法生成的第二个查询不包含 DISTINCT 关键字,因此计数返回 112 行而不是 77 行。
这是相关的部分
$select = $this->select()
->setIntegrityCheck(false)
->from('companies')
->distinct()
->join('project_team', 'companies.companyID = project_team.companyID', null)
->join('project_team_roles', 'project_team.roleID = project_team_roles.roleID', null)
->join('projects', 'projects.projectID = project_team.projectID', null)
->where('project_team_roles.isArchitect')
->where('companies.companyName LIKE ?', '%' . $str . '%')
->where('projects.islive AND NOT projects.isDeleted')
->order('companies.companyName');
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
$paginator = new Zend_Paginator($adapter);
$paginator->setCurrentPageNumber($page);
$paginator->setItemCountPerPage(100);
return $paginator;
除了忽略计数查询中的 DISTINCT 子句外,它生成的查询没有任何问题。如果您删除 ->distinct() 位,一切都很好 - 112 行和分页都是 super 的,除了数据有重复的行。
我看到关于类似问题的错误报告以公平的方式回溯,但它们在 ZF 的早期版本中被标记为已修复
?这是一个已知的问题吗?如果不编写自己的分页,我能做些什么吗?并不是说编写分页特别具有挑战性,但这意味着这一点将与项目的其余部分不一致
非常感谢
伊恩
编辑 - 找到了一个解决方法,作为答案发布在下面。
最佳答案
很久以前就有人问过这个问题,但仍然需要一个答案。
您应该在 Controller 中使用 setRowCount() 方法。
$select = $your_model->getSelect();
$select_count = $your_model->getCount(); // geting count from select above
$adapter = new Zend_Paginator_Adapter_DbSelect($select);
$adapter->setRowCount((int)trim($select_count)); // <-- // set integer !
$paginator = new Zend_Paginator($adapter);
// That's it
...
$this->view->paginator = $paginator;
// and so on...
关于php - 当查询有 "distinct"时,Zend Paginator 显示错误的页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896826/
有没有像{{NUMBEROFARTICLES}}这样的魔法词对于所有页面? 文章和页面之间似乎存在差异(文章 < 页面),我想显示总页数。 最佳答案 Yes, there is : {{NUMBERO
在我的项目中,我有一个要求,即显示 Word 文档(.doc、.docx)文件中的页数和 Excel 文档(.xls、.xlsx)中的工作表数。我尝试使用 Docx4j 读取 .docx 文件,但性能
我使用正则表达式来计算 pdf 的页数。下面是我使用的代码。 Regex regex = new Regex(@"/Type\s*/Page[^s]"); MatchCollection matche
我的问题如下: 有一些巨大的 PDF 文件(>500MB),我想使用 JAVA 找到它们的页数。如果我使用 itext 或 pdfbox,我必须等到它读取整个文件,并且大多数时候都会失败,因为文件很大
我希望能够在浏览器中输出一个 pdf(这一切都很好而且花花公子)但限制了显示的页数。 IE。读者可以看到他想买的东西的内容是准确的,但同时我也不是免费提供文件的。我可以批量编辑文件以创建新的 3-5
我有一个 WebView 显示一些经常更新的内容。我想在我的 UI 中显示一个页面计数器,它会告诉用户如果要打印它,Web View 会有多少页。 我试过: NSRange r = NSMakeRan
我正在研究 linux 设备驱动程序,发现页数等于帧数。每个页面映射到每个框架。它说只要程序需要内存,它就会分配页面。 但是我发现在操作系统书籍中,虚拟地址分为页面,这些页面被加载到框架中。那么页面数
我想基于模板创建一个新文档,并且需要知道我的插入或附加结果何时会在最终打印输出中生成一个新页面,是否有任何属性/属性(例如可用于此的页数)? 最佳答案 过去我对此进行了大量搜索,但我认为没有任何属性或
不确定这是否可行,但我正在尝试通过纯文本输出将文本保存到具有特殊编码的 RTF。 除了总页数外,我一切正常。 我想让它说“y 的第 x 页”,例如,每页的底部说“第 1 页,共 3 页”,但我找不到总
在 ReportViewer 和导出的 PDF 中查看时显示的页数不同。例如:Report Viewer 的一页显示 50 条记录。但是当导出为 PDF 时,45 条记录出现在第 1 页,其余记录出现
除了我的所有文件都在网络驱动器上之外,这段代码对我有用。在下面的示例中,仅当文件位于根目录 (c:\) 中时代码才有效。 我是否必须将 input.pdf 替换为 d:\hello space fol
我想在访问者访问开始后进入第三页时向他显示一个弹出窗口。 我发现表log_url存储了visitor_id和url_id。我在想是否我们可以计算某个访问者 ID 的 url_id 记录数,这样我就可以
我正在尝试阅读编号。使用 pdf 的给定 pdf 中的页面(通过查找“/Count xx”),但我似乎做错了什么。我将所有字符读入缓冲区并使用字符串类的查找来查找。但是在我尝试过的许多文件中,它只工作
目前我正在使用 itext 阅读 pdf 的页数。这需要很长时间,因为库似乎要扫描整个文件。 页面信息是否位于 pdf 标题的某处,或者是否需要完整的文件扫描? 最佳答案 没错。 iText 在打开时
在我的项目中,我有一项要求显示 Word 文档(.doc、.docx)文件中的页数和 Excel 文档(.xls、.xlsx)中的页数。我曾尝试使用 Docx4j 读取 .docx 文件,但性能很差,
我在获取 phantomjs 中生成的 pdf 页数时遇到问题。基本上我将 phantomjs 与 nodejs 一起使用,我想在第 5 页中显示总页数。 function generatePdf()
我有一个网页,允许用户将文件上传到帐户文件夹。仅限 PDF 和 JPG 文件。我想计算每个上传的 PDF 中的页数,以将其显示给用户。 为此,我使用了 PDFINFO linux 库,它是 XPDF
我做了很多研究(我猜还不够?)并试图找到一个易于使用的库来使用 Node.js 查找 PDF 的页数。该库需要在 Windows 操作系统上可用。 有人知道如何最好地解决这个问题吗?最坏的情况是,我正
我是一名优秀的程序员,十分优秀!