我在我的项目中使用CakePHP 2.X并且一度停留。
首先让你知道我使用表单的 POST 方法实现了搜索功能,但是为此我在分页中发现了错误。过滤器无法支持下一页。所以我将表单方法更改为 GET 。现在它工作正常(不完全是我所要求的,所有请求的数据显示在URL中),但现在我正处于创建另一个问题的位置。
当我尝试搜索任何内容(数据库中的现有数据)时出现以下错误,并使用分页转到下一页,现在我更改了搜索关键字,但在DB中没有匹配(数据库中不存在数据)。 /强>
错误:在此服务器上找不到请求的地址
POST方法时没有。
我尝试了调试模式(Configure::write('debug', 2)
)中的所有选项。但没有得到任何帮助。
有人可以帮我解决这个问题吗?非常感谢!
感谢。
答案 0 :(得分:5)
答案很简单。
lib/Cake/Controller/PaginatorComponent.php
if ($requestedPage > $page) {
throw new NotFoundException();
}
所以只需捕获控制器中的错误。
public function index() {
try {
$this->Paginator->paginate();
} catch (NotFoundException $e) {
//Do something here like redirecting to first or last page.
//$this->request->params['paging'] will give you required info.
}
}
这就是原因:http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#out-of-range-page-requests