0

如何处理带有错误参数的正确基本 url?

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

例子:

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

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

谢谢你

4

1 回答 1

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 的异常。

请注意,这有一个额外的好处:它不仅涵盖了缺少参数的情况,而且如果参数存在但引用不存在的项目,它也会正确返回错误$id

于 2012-06-07T08:28:53.643 回答