如何使用错误的参数处理正确的基本网址?
Cakephp如果你传递错误的控制器或动作名称,它将导致404页面。 但是如果我用错误的参数输入正确的控制器/动作名称,我该如何处理这种情况。
示例:
正确:http://localhost/controller/action?params=123
错误:http://localhost/controller/action?par23=123
par23是错误的名字。在这种情况下,我想重定向到404页面等一些页面。是否有任何方法或配置我不需要检查控制器中的参数,并且每次都重定向到某个页面。
谢谢
答案 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>