如何将用户重定向到上一页zend框架3

时间:2016-11-22 06:35:20

标签: php redirect zend-framework2 zend-framework3

我正在设计一个网站,其中包含两个不同网页上的我的群组和其他群组。我的组和其他组都可以选择查看重定向到members.phtml页面的每个组的成员。
现在,我想在顶部的members.phtml页面上添加一个返回按钮,该按钮将转到上一页(我的组/其他组)。有没有办法保存当前网址并将其发送到members.phtml页?

1 个答案:

答案 0 :(得分:1)

您可以使用重定向插件并在网址中添加查询参数previous。请查看this answer以获取示例,然后检查重定向插件上的ZF2 documentation here。它会变成这样:

http://www.example.com/members.phtml?previous=my_groups

my_groups路由的控制器中,您将重定向网址添加到您的成员页面,您需要将查询参数添加到重定向路由:

$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访问的,您可以相应地渲染后退按钮。

更新

评论后的一些额外信息......

您可以使用以下命令查找当前页面网址:

$this->getRequest()->getRequestUri();

或者您可以获得当前匹配的路线:

$this->getMvcEvent()->getRouteMatch()->getMatchedRouteName();

您可以使用它来动态添加上一个网址。