1

私の Web アプリでは、ユーザーがログインしてロゴをクリックすると、匿名ユーザーとしてエントリ ページに移動する代わりに、メンバーのホームページ URL を読み込みます。ユーザーが参加またはログインすると、このルートが生成され$this->generateUrl('member_page'), array('member' => $member->getName())); 、ルートがそのように構成されます。

member_page: pattern: /member/{member}/
defaults: { _controller: HomeBundle:Default:member }

そして、次の URL を生成します。

http://website.com/member/John+joe/

問題は、ルートを思い出すと、このURLだけが表示されることです

http://website.com/member/

新しいアクションを呼び出して使用しようとしまし$request->getURI()たが、動的な get パラメーターを維持しません。

ロゴをクリックするたびにユーザー名を取得するために DB を呼び出さないようにしています。どんな助けでも素晴らしいでしょう、ありがとう!

4

3 に答える 3

4

数週間前、私はかなり似たようなことをしなければならず、PagerFantaBundle からインスピレーションを得ました。コントローラーでこのコードを試しましたか:

$request = $this->getRequest();
return $this->redirect($this->generateUrl($request->get('_route'), $request->query->all()));
于 2012-07-19T08:09:36.653 に答える
2

ユーザー名を使用する代わりに、ログイン後にユーザー セッションに保存されるユーザー ID を使用できます。これにより、同じ名前を持つユーザーとの競合も回避されます。

于 2012-07-19T01:36:57.930 に答える
0

考えられる解決策の 1 つは、Twig で適切なルートを生成することです。

{% if app.user %}
   <a href="{{ path('member_page', {'member': app.user.name}) }}">
{% else %}
   <a href="{{ path('your_homepage') }}">
{% endif %}
      <img src="yourlogo.png" />
   </a>
于 2012-07-24T12:56:54.607 に答える