2015-06-03 152 views
1

在我的symfony項目,我有:Symfony2的路由不帶前綴

  1. example.com/ 用戶 /用戶名=>進入用戶資料
  2. example.com/ 博客/theweathertoday =>去一個動態頁面後博客
  3. example.com/ whoarewe =>在routig.yml定義靜態頁面

,我想實現:

  1. example.com/username =>進入用戶資料
  2. example.com/theweathertoday =>去一個動態頁面後博客
  3. example.com/ whoarewe =>靜態頁面

你能告訴我什麼是最好的方式:

  • 從博客藝術獨立的用戶從網站頁面icle? (控制器,服務,...?)
  • 如何確保用戶不會有限制註冊的名稱,如「whoarewe」至極在routing.yml中定義的?

什麼是最好的方法?

回答

2

routing.yml文件僅僅是一個加載路線的方式,但也有many other ways。您可能需要的一種方法是custom route loader

由於路由裝載機被定義爲服務,你可以注入其他服務納入其中,比如用戶名檢查器,還可以重新使用通過驗證的新用戶註冊應用程序的一部分。

如果沒有做這樣的事情,你需要將匹配^/[^/]+的所有流量路由到一箇中間前端控制器,它將採用匹配的參數並決定如何轉發它。

完整的回答你的問題將是工作體面的數額,但希望這可以讓你在正確的方向開始。

-2

改變example.com/user/username到example.com/username我認爲你必須刪除/用戶的routing.yml文件之一。與/博客相同。這些文件可以在你的Bundle目錄下的Resources/config目錄下找到,也可以在你的app/config目錄下找到。

+0

我已瞭解你在說什麼,但是這並沒有解決3種類型的頁之間的衝突。例如,如果用戶名爲「whoarewe」,那麼如果用戶名和weathertoday現在不可用,則該用戶將與頁面「whoarewe」 – user788721

+0

混淆。但有可能改變順序:example.com/{username}/user –