cakephp检查方法或函数是否存在并相应地重定向

时间:2014-12-10 14:36:47

标签: php cakephp

尝试为我的cakephp应用程序编写一个方法,检查url中调用的方法是否不存在,并根据其帐户类型重定向用户(如果方法成立或不成立)。这甚至可能吗? 用户可以简单地覆盖我的网址,例如受方法影响的\ localhost \ www \ project \ user \ method \ ID

尝试使用内置的php函数method_exists来实现。如果有可能,我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

每当您调用一个不存在的控制器或操作时,CakePHP将相应地抛出MissingControllerExceptionMissingActionException和404错误。你可以随心所欲地做出反应。您可以create your own exception handler抓住任何MissingControllerExceptionMissingActionException,然后从那里处理。

或者您可以从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以查看您正在处理的用户类型,并根据您的意愿重定向。