我一直在尝试创建一个像面包店的 Paginator Recall 这样的组件这将允许我保存 CakePHP 2.4 的分页数据并遇到以下问题。
所有解决方案都涉及在 session 中保存分页器参数,然后在返回同一页面时检索并应用它们,而不指定任何参数。
如果只有像numbers()、first()和previous()这样的Paginator辅助函数在它们生成的用于移动到第一页的链接中包含page:1命名参数(就像相应的函数一样),那么这种方法就会起作用。 1.3版本。
不幸的是,所有这些函数在引用第一页时都会创建不带 page 参数的 URL,因此当用户单击第一页链接时,该组件不会找到任何分页信息,因此会将它们返回到之前的位置。
一定有办法解决这个问题,但目前我完全陷入困境。
最佳答案
首页链接中不包含页码是有意设计的。
阅读 CakePHP 2.4 Migration guide 上的原因.
我建议使用相同的约定。当您没有分页信息时,假设是第一页,并且不要将其添加到您的 URL 中。
因此,当分页丢失时,您所要做的就是编写这种特殊情况的代码。在这种特殊情况下,您的“召回”组件将根本不会添加该页面。
关于cakePHP Paginator::numbers() 函数在第一页的链接中不包含 page:1 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21476839/