2015-06-19 59 views
0

我有產生這樣URL別名或與Symfony2的替換

前網址應用)

http://myserver.com/shows/12 

http://myserver.com/shows/14 

我的routing.yml是

acme_top_writeReviewSchool: 
    pattern: /show/{userId} 
    defaults: { _controller: AcmeTopBundle:Default:showUser} 

12或14中使用的id數據庫。現在

id| name | position 
12| james| pitcher 
14| nick | short 
15| ian | catcher 

,我想使別名這個網址

http://myserver.com/james 

http://myserver.com/nick 

or 

http://myserver.com/u=james 

http://myserver.com/u=nick 

or 

http://myserver.com/show/james 

http://myserver.com/show/nick 

我有GOOGLE上搜索關鍵詞像'別名「鏈接交換」什麼的,howevere不能找到很好的例子,或束。

你能幫我嗎?

+0

您已經在'{userId}'的URL中插入了一個動態值。什麼阻止你使用'{username}'而不是?您只需使用'findAllByName($ name);'方法來檢索用戶。順便說一句,我建議不要使用'http://myserver.com/ {用戶名}',你應該用一些關鍵字加上你的URL,這樣應用就不會混淆網址。 – D4V1D

回答

0

實際上,您可以有多個指向同一個包的路由:controller:action。

例如,如果你想使用http://myserver.com/james

acme_top_writeReviewSchool_by_name: 
pattern: /{name} 
defaults: { _controller: AcmeTopBundle:Default:showUser} 

,你必須要知道的唯一的事情是,在控制器動作,您需要可以通過請求對象來獲取或者帕拉姆「名」或「userId」,或者你可以命名參數相同並手工管理(可以這麼說)。

你可以在這裏發佈控制器動作嗎?