cakephp - 在“Missing method”错误上重定向未经身份验证的用户

时间:2013-07-09 11:42:47

标签: php cakephp authentication login

CakePHP身份验证/重定向到“users / login”如果我没有经过身份验证并且我尝试打开该页面,则效果很好。 “/帖/视图/ 2”。

但如果我试图获得ie。 “/ users / somethingNotExisting”然后CakePHP扔了

Missing Method in UsersController

Error: The action somethingNotExisting is not defined in controller UsersController

Error: Create UsersController::somethingNotExisting() in file: app/Controller/UsersController.php.

这很糟糕:

  • 我不希望看到错误消息

  • 创建missing_action.ctp不行,在这种情况下,每个人都可以看到默认布局(带菜单等)。

如何强制CakePHP 将任何未经身份验证的未知操作重定向到登录页面?

1 个答案:

答案 0 :(得分:2)

您获得的错误消息仅在开发模式下,如果您在app/Config/core.php Configure::write('debug', 0);中将调试级别设置为0,您将获得正常的404未找到的响应,您可以根据自己的喜好进行自定义在app/View/Errors/error400.ctp

如果人们在未登录时看到您的菜单,那是因为没有“隐藏”未登录用户的那部分而导致的错误

错误页面浏览量位于app/View/Errors/。对于所有4xx和5xx错误,分别使用视图文件error400.ctperror500.ctp。您可以根据需要自定义它们。默认情况下,您的app/Layouts/default.ctp也用于错误页面。如果是例如。您希望为错误页面使用另一个布局app/Layouts/my_error.ctp,然后只需编辑错误视图并将语句$this->layout = 'my_error';添加到error400.ctperror500.ctp。这样,您可以隐藏所需的任何默认布局和/或导航