我正在为某些Web应用程序使用symfony 1.4。在那里,当有人尝试访问一个操作时,我会将其重定向到一个新操作,如下所示。
//Assume I'm redecting from module1/action1 to module2/action2
$this->redirect('module2/action2');
我在模块 2/action2 中可以获得重定向的网址。我用了
$request->getReferer();
但它没有给出任何结果。
我不需要使用转发而不是重定向,因为它不符合我的需要。有人可以帮助我吗?
我可以建议您将引用器放在会话中,以便在重定向后能够检索。这就是sfGuard执行它的方式。
重定向之前:
// save the referer
$referer = $this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer();
$this->getUser()->setAttribute('referer', $referer);
// make your redirect
$this->redirect('module2/action2');
然后,在你的module2/action2
中,像这样检索你的引用:
$referer = $this->getUser()->getAttribute('referer');
// finally, remove it from session
$this->getUser()->getAttributeHolder()->remove('referer');