2012-07-19 24 views
1

在我的網絡應用程序中,如果用戶登錄並單擊徽標,而不是以匿名用戶的身份進入輸入頁面,則會加載其成員主頁URL。 工作原理是當用戶加入或在日誌中,我產生這條路線$this->generateUrl('member_page'), array('member' => $member->getName())); 和我的路由配置爲如此,是否有可能重新加載Symfony2頁面的get參數保持不變?

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

並生成該網址:

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

的問題是,當我回憶起航線它只是顯示這個網址

http://website.com/member/ 

我已經打過電話了新的動作,並使用$request->getURI() b它不保持動態獲取參數。

我試圖避免每次點擊徽標時調用數據庫來獲取用戶名。 任何幫助將是偉大的,謝謝!

回答

4

幾個星期前,我不得不做一些非常相似的事情,並從PagerFantaBundle中得到啓發。你有沒有在你的控制器嘗試這種代碼:

$request = $this->getRequest(); 
return $this->redirect($this->generateUrl($request->get('_route'), $request->query->all())); 
2

而不是使用用戶名,您可以使用用戶ID,它將登錄後保存到用戶會話。這也將避免與具有相同名稱的用戶衝突。

0

一個可能的解決方案將產生向右的樹枝正確路線:

{% if app.user %} 
    <a href="{{ path('member_page', {'member': app.user.name}) }}"> 
{% else %} 
    <a href="{{ path('your_homepage') }}"> 
{% endif %} 
     <img src="yourlogo.png" /> 
    </a> 
相關問題