在过去的几天里,我自己也在为此苦苦挣扎。ZfcUser 配置包含一个use_redirect_parameter_if_present
设置,但文档没有提供任何关于如何使用它的示例。我不知道我的方法是否可靠,但这就是我为使其正常工作所做的工作。请注意,此方法保留 URL,因为它使用转发。我不确定不使用 forward 的另一种方法。
在您的 zfcuser 配置文件中,继续将该use_redirect_parameter_if_present
设置设置为true
. 这会导致 ZfcUser 的登录操作redirect
在请求中查找参数。它使用它在成功验证后将用户返回到指定位置。
然后,在我要确保用户登录的控制器中,我有:
if (!$this->zfcUserAuthentication()->hasIdentity()) {
// Build the redirect URL using the route to which we want
// the user returned.
$redirect = $this->url()->fromRoute('your route', array(
'optional-route-param' => 1234
));
// Set the redirect URL in the request so that ZfcUser can
// pick it up. This is the key.
$this->getRequest()->getQuery()->set('redirect', $redirect);
// Use ZfcUser's login action rather than its authentication
// action.
return $this->forward()->dispatch('zfcuser', array(
'action' => 'login'
));
}
我希望这会有所帮助。如果您在使其正常工作时遇到问题,您可能需要发布一些代码。