_forward - это внутреннее перенаправление. Когда _redirect отправляет заголовок, который сообщает браузеру клиента перейти на какой-либо другой URL-адрес, _forward указывает диспетчеру внутренне перенаправить запрос куда-либо еще.
Если вы считаете нормальный порядок отправки:
preDispatch()
someAction()
postDispatch()
Вызов _forward в любой точке этой последовательности приведет к тому, что следующие шаги не будут выполнены. Так что если вы вызываете _forward в preDispatch (), someAction () не будет вызываться и так далее. Если вы используете _forward () в someAction () и используете помощник действий viewRenderer для рендеринга ваших представлений (вы позволяете платформе выбрать, какой сценарий представления отображать), то сценарий представления не будет отображаться в someAction ().
Когда запрос перенаправляется на новый контроллер / модуль, весь процесс отправки повторяется там.
Вы можете узнать, какое действие отправляется, используя:
$action = $this->getRequest()->getParam('action');
$ action будет URL-формой действия, поэтому, если метод называется «someKindOfAction», $ action будет содержать «some-kind-of». Вы можете сделать это также для контроллеров и модулей.