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::