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

时间:2014-01-03 13:01:22

标签: php cakephp cakephp-2.3

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

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

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

  

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

POST方法时没有。

我尝试了调试模式Configure::write('debug', 2))中的所有选项。但没有得到任何帮助。

有人可以帮我解决这个问题吗?非常感谢!

感谢。

1 个答案:

答案 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