0

"users/login" への 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 not found 応答が返され、好みに合わせてカスタマイズできます。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.ctpandに追加しerror500.ctpます。このようにして、必要なデフォルトのレイアウトやナビゲーションを非表示にすることができます

于 2013-07-09T11:53:51.317 に答える