尝试为我的cakephp应用程序编写一个方法,检查url中调用的方法是否不存在,并根据其帐户类型重定向用户(如果方法成立或不成立)。这甚至可能吗? 用户可以简单地覆盖我的网址,例如受方法影响的\ localhost \ www \ project \ user \ method \ ID
尝试使用内置的php函数method_exists来实现。如果有可能,我该怎么办呢?
答案 0 :(得分:0)
每当您调用一个不存在的控制器或操作时,CakePHP将相应地抛出MissingControllerException
或MissingActionException
和404错误。你可以随心所欲地做出反应。您可以create your own exception handler抓住任何MissingControllerException
或MissingActionException
,然后从那里处理。
或者您可以从AppController检查响应对象中的状态代码,这在技术上不是" clean"实际上处理异常,但无论如何都可以毫不费力地完成工作。为此,请在AppController中添加:
public function beforeRender() {
if ($this->response->statusCode() == '404') {
// We've hit a 404, do whatever you want to do here...
}
}
在那里,您可以查看Session / AuthComponent以查看您正在处理的用户类型,并根据您的意愿重定向。