実現したいこと
CakePHP4で存在しないコントローラーまたはアクションにアクセスされた時に、 指定したページヘリダイレクトさせる処理を書きたいです。
現在の状況
最初はAppコントローラでPHPのマジックメソッドの_call()を書いて試しましたが、そもそも存在しないアクションの場合はAppコントローラのに行く前に、 CakePHPのControllerFactory.phpのmissingControllerメソッドに引っかかってエラーになってしまうようです。 なので、ControllerFactory.phpのmissingControllerメソッドの中にリダイレクトさせる処理を書いたのですが、書いたとおりにリダイレクトしてくれるときと、急にセッションが切れたりして動いてくれないときがあります。後者はmissingControllerメソッドをいじったことによってどこかに影響したと考えていますが、いまいち原因かわかりません、、
知りたいこと
1.そもそもControllerFactory.phpを編集することは良くないのでしょうか?もし、良くないようであれば理由も知りたいです。
2.もしControllerFactory.php編集しても差し支えないのであれば、どのようにリダイレクトを実装するのが妥当でしょうか?
vendor\cakephp\cakephp\src\Controller↓
php
1 protected function missingController(ServerRequest $request) 2 { 3 4 ここにリダイレクトの処理を書いている 5 6 ↓もともと書いてあったのはコメントアウトしている 7 //return new MissingControllerException([ 8 //'class' => $request->getParam('controller'), 9 //'plugin' => $request->getParam('plugin'), 10 //'prefix' => $request->getParam('prefix'), 11 //'_ext' => $request->getParam('_ext'), 12 //]); 13 }
あなたの回答
tips
プレビュー