如何在symfony重定向中获取referer url

Thi*_*nka 2 php url redirect symfony-1.4

我正在使用symfony 1.4进行一些Web应用程序.在那里,当有人试图访问一个动作时,我将其重定向到新的动作,如下所示.

//Assume I'm redecting from module1/action1 to module2/action2
$this->redirect('module2/action2');
Run Code Online (Sandbox Code Playgroud)

我在module2/action2中可以获取重定向的url.我用了

$request->getReferer();
Run Code Online (Sandbox Code Playgroud)

但它没有给出任何结果.

我不需要使用forward而不是重定向,因为它不符合我的需要.有人可以帮我这个.

j0k*_*j0k 5

我可以建议你将referer放在会话中,以便能够在重定向后检索.这就是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');
Run Code Online (Sandbox Code Playgroud)

然后,在你的module2/action2,检索你的referer:

$referer = $this->getUser()->getAttribute('referer');

// finally, remove it from session
$this->getUser()->getAttributeHolder()->remove('referer');
Run Code Online (Sandbox Code Playgroud)