2

一部の Web アプリケーションに symfony 1.4 を使用しています。誰かが 1 つのアクションにアクセスしようとすると、次のように新しいアクションにリダイレクトしています。

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

module2/action2 で、リダイレクトされる URL を取得できます。使った

$request->getReferer();

しかし、それは何の結果ももたらしません。

リダイレクトの代わりにフォワードを使用する必要はありません。それは私のニーズに合わないからです。誰かがこれについて私を助けることができますか?

4

1 に答える 1

6

リファラーをセッション内に配置して、リダイレクト後に取得できるようにすることをお勧めします。これが 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');
于 2012-08-16T07:32:16.100 に答える