2013-07-09 53 views
0

如果我沒有通過身份驗證,我嘗試打開頁面即CakePHP認證/重定向到「users/login」。 「/帖/視圖/ 2」。cakephp - 在「Missing method」錯誤上重定向未認證的用戶

但是,如果我試圖得到ie。 「/用戶/ 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是不行的,在這種情況下,大家可以看到默認佈局(帶菜單等)

我該如何強制CakeP惠普至將任何未經身份驗證的未知操作重定向至登錄頁面?

+0

你通常不會在404s上重定向。這會給你的服務器造成不必要的開銷。 – mark

回答

2

你所得到的錯誤消息只在開發模式下,如果您設置調試級別爲0 app/Config/core.phpConfigure::write('debug', 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。這樣你可以隱藏任何你想要的默認佈局和/或導航

+0

差不多。我的默認佈局呈現並可見。我想只看到一個404頁面,沒有更多。 – boj

+0

看到我的編輯使用另一個'default.ctp'爲您的錯誤頁面,以便您可以從錯誤頁面隱藏任何你想要的 –