我如何解决错误:在此服务器上找不到请求的地址 - CakePHP

Cha*_*h M 2 php cakephp cakephp-2.3

我在我的项目中使用CakePHP 2.X并且一度停留.

首先让你知道我使用表单的POST方法实现了搜索功能,但是为此我在分页中发现了错误.过滤器无法支持下一页.所以我将form方法更改为GET.现在它工作正常(不完全是我需要的,所有请求的数据显示在URL中),但现在我正处于创建另一个问题的地步.

当我尝试搜索任何内容(DB中的现有数据)时,我得到以下错误,并使用分页转到下一页,现在我更改了在DB中不匹配的搜索关键字(数据库中不存在数据).

错误:在此服务器上找不到请求的地址

在POST方法时哪个不存在.

我已尝试在调试模式(Configure::write('debug', 2))中使用所有选项.但没有得到任何帮助.

任何人都可以帮助我吗?真的很感激!

谢谢.

小智 5

答案很简单.

lib/Cake/Controller/PaginatorComponent.php
if ($requestedPage > $page) { 
        throw new NotFoundException();
}
Run Code Online (Sandbox Code Playgroud)

所以只需捕获控制器中的错误.

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.
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是原因:http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#out-of-range-page-requests