Я разрабатываю веб-сайт, на котором есть мои группы и другие группы, присутствующие на двух разных веб-страницах. Как в моих группах, так и в других группах есть возможность видеть участников каждой группы, которая перенаправляется на страницу members.phtml
.
Теперь я хочу добавить кнопку "Назад" на members.phtml
странице вверху, чтобы перейти на предыдущую страницу (мои группы/другие группы). Есть ли способ сохранить текущий URL-адрес и отправить его на страницу members.phtml
?
Как перенаправить пользователя на предыдущую страницу Zend Framework 3
Ответы (1)
Вы можете использовать плагин перенаправления и добавить параметр запроса previous
к URL-адресу. Проверьте этот ответ в качестве примера и проверьте Документация по ZF2 здесь в плагине перенаправления. Получилось бы что-то вроде этого:
http://www.example.com/members.phtml?previous=my_groups
В контроллере для вашего маршрута my_groups
, где вы добавили URL-адрес перенаправления на свою страницу участников, вам нужно будет добавить параметр запроса к маршруту перенаправления:
$previous = 'my_groups';
$this->redirect()->toRoute(
'members',
array(
'action' => 'index'
),
array( 'query' => array(
'previous' => $previous
))
);
Теперь, когда запрашивается страница members.phtml
, вы можете найти предыдущую страницу внутри параметров запроса объекта запроса. Вы можете легко получить к нему доступ в своем контроллере следующим образом:
$previous = $this->params()->fromQuery('previous'); // my_groups
Теперь вы знаете, был ли доступ к странице участников с my_groups
или other_groups
, и вы можете соответствующим образом отобразить кнопку «Назад».
ОБНОВИТЬ
Некоторая дополнительная информация после вашего комментария...
Вы можете найти URL-адрес текущей страницы, например, используя:
$this->getRequest()->getRequestUri();
Или вы можете получить текущий совпадающий маршрут:
$this->getMvcEvent()->getRouteMatch()->getMatchedRouteName();
И вы можете использовать это для динамического добавления предыдущего URL-адреса.