0

如果我没有通过身份验证并且我尝试打开页面,CakePHP 身份验证/重定向到“用户/登录”效果很好,即。“/posts/view/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将任何未经身份验证的未知操作重定向到登录页面?

4

1 回答 1

2

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

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

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

于 2013-07-09T11:53:51.317 回答