2016-08-16 10 views
-1

symfony 2.8.6を使用しています。非常にシンプルなウェブサイトをセットアップするためのFOSUserBundle。 "/"が私のHomeControllerを表示するルートがあり、 "/ username"を持つことが可能かどうかは、適切なユーザーを示すProfileControlerに移動するのかどうか疑問に思っていました。どのように経路を設定する必要がありますか?それはルートURLにあることさえできるのか、それとも醜い "/ user/username"でなければならないのですか?symfony 2.8とFOSUserBundleを使用しているユーザーのために

これまでのFOSUserBundleは、ユーザ名のあらゆる種類の文字を許可しています。 URL。ですから、ユーザー作成時には、ユーザー名に固有のperma-urlを作成する必要があります。これをどうやってやりますか?どのように私はデータベース内のpermaurlの一意性をチェックするのですか?

ありがとうございました。

答えて

1

URLの一部としてユーザー名を使用すると、FosUserBundleとデータベースは重複を気にするので、注意する必要はありません。

パブリック部分を作成するには、HomeControllerと@Routeアノテーションを/ {username}パスワードとともに使用するか、documentationに示されているようにrouting.ymlでパターンを設定します。

このパターンは/ about-usのようなほとんどのものをキャプチャしてデータベースで探しますので、/ users/{username}のような "セクション"に移動することをお勧めします。さえ醜いです。

これを避けるには、routing.ymlファイルでルートを設定する順序で再生する必要があります。より具体的なパターンは、より早くymlファイルに表示されます

+0

しかし、 "André"と "Andre"という名前のユーザーは別のユーザーになりますが、同じスラッグを作成しませんか?あるいは、FOSUserbundleはそれらを似たように見て、名前を二度許さないのでしょうか? – Sangit

+0

データベースレベルでusername_canonicalフィールドは一意であると定義されています。つまり、同じユーザー名で新しいユーザーを挿入しようとすると、同じユーザー名の2人のユーザーの作成を妨げる例外がスローされます。私は、このエラーはフォームフィールドまで "バブル"だと思うが、私はバンドルコントローラを使用しないのでわからない。 – Carlos

関連する問題