2016-08-16 58 views
-1

我使用symfony 2.8.6。和FOSUserBundle來建立一個非常簡單的網站。 有一個「/」顯示我的HomeController的路線,我想知道是否可能有「/用戶名」轉到ProfileControler顯示適當的用戶。如何配置路線?它可以甚至在根網址或它必須是「/用戶/用戶名」這是醜陋的...permaurl用戶與symfony 2.8和FOSUserBundle

到目前爲止FOSUserBundle允許用戶名中的各種字符,這將不會非常兼容一個網址。所以在創建用戶時,我將不得不爲用戶名創建唯一的perma-url。我會如何去做這件事?我如何檢查數據庫中permaurl的獨特性?

謝謝你的幫助。

回答

1

如果您使用用戶名作爲url的一部分,FosUserBundle和數據庫會關心重複項,因此您不需要關心這些重複項。

要創建公共部分,您可以使用HomeController和@Route註釋以及/ {用戶名}密碼或配置routing.yml中的模式,如文檔中所示。

這將很令人頭疼,因爲這種模式幾乎可以捕捉到/ about-us之類的任何內容,並會在數據庫中查找它,所以我建議您移動到「用戶」/「用戶名」甚至是醜陋的。

如果您想避免這種情況,您必須使用您在routing.yml文件中配置路由的順序。更具體的模式是越早應該出現在yml文件中

+0

但是,名爲「André」和「Andre」的用戶不是不同的用戶,而是創建相同的slug?或者FOSUserbundle將它們視爲相似並且不允許兩次使用該名稱? – Sangit

+0

在數據庫級別,username_canonical字段被定義爲唯一的,這意味着如果您嘗試插入具有相同用戶名的新用戶,數據庫層將引發異常,從而阻止創建具有相同用戶名的兩個用戶。我猜這個錯誤會直到表單域出現「氣泡」,但我不確定,因爲我沒有使用包控制器。 – Carlos