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

How to redirect user to previous page zend framework 3

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

您可以使用重定向插件并将查询参数 previous 添加到 url。检查重定向插件上的 this answer for an example and check the ZF2 documentation here。它会变成这样:

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.