cakephp处理在url中传递错误的参数

时间:2012-06-07 06:19:23

标签: cakephp cakephp-1.3 cakephp-2.0

如何使用错误的参数处理正确的基本网址?

Cakephp如果你传递错误的控制器或动作名称,它将导致404页面。 但是如果我用错误的参数输入正确的控制器/动作名称,我该如何处理这种情况。

示例:

正确:http://localhost/controller/action?params=123 错误:http://localhost/controller/action?par23=123

par23是错误的名字。在这种情况下,我想重定向到404页面等一些页面。是否有任何方法或配置我不需要检查控制器中的参数,并且每次都重定向到某个页面。

谢谢

1 个答案:

答案 0 :(得分:0)

您需要在控制器中手动检查。

我只是检查你的是否需要参数,而不是寻找任何额外的错误的参数。如果没有,你可以抛出异常。

这就是Cake的烘焙代码所做的事情:

// MyModelController.php
public function view($id = null) {
        $this->MyModel->id = $id;
        if (!$this->MyModel->exists()) {
            throw new NotFoundException(__('Invalid thing'));
        }

        // ...
}

所以这里需要一个ID。如果未给出(默认值null)或没有此Id存在的记录,则会抛出导致404的异常。

请注意,这有一个额外的好处:它不仅涵盖了缺少param的情况,如果param存在,它也会正确返回错误,但$id引用不存在的项。< / p>