From b9bc87acb97344e2c5d99c0471ac8e0c0ec4385f Mon Sep 17 00:00:00 2001 From: mscherer Date: Mon, 23 Jun 2025 17:44:07 +0200 Subject: [PATCH] Document 5.x redirecting --- en/controllers.rst | 22 ++++++++++++++++++++++ en/controllers/components.rst | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/en/controllers.rst b/en/controllers.rst index 0f3c1ad469..8b448241d5 100644 --- a/en/controllers.rst +++ b/en/controllers.rst @@ -571,6 +571,28 @@ for best results:: .. _controller-middleware: +Using Redirects in Controller Events +==================================== + +To redirect from within a controller callback method you can use the following:: + + public function beforeFilter(EventInterface $event): void + { + if (...) { + $event->setResult($this->redirect('/')); + + return; + } + + ... + } + +By setting a redirect as event result you let CakePHP know that you don't want any other +component callbacks to run, and that the controller should not handle the action +any further. + +As of 4.1.0 you can also raise a ``RedirectException`` to signal a redirect. + Controller Middleware ===================== diff --git a/en/controllers/components.rst b/en/controllers/components.rst index e2f2ef4ef3..1d2e3a82e5 100644 --- a/en/controllers/components.rst +++ b/en/controllers/components.rst @@ -346,7 +346,7 @@ To redirect from within a component callback method you can use the following:: ... } -By stopping the event you let CakePHP know that you don't want any other +By setting a redirect as event result you let CakePHP know that you don't want any other component callbacks to run, and that the controller should not handle the action any further. As of 4.1.0 you can raise a ``RedirectException`` to signal a redirect::