2017-05-16 14 views
2

私のすべてのURLにオプションの_localeを付加したいと思います。ところで、私はfrenを扱っています。前回の直後に実行されます。ルートにオプションの_localeを追加する

ポイントは、私は自分のリスナー(15優先)にデータベースのおかげで保存されたロケールを使用しますされていない場合_localeが与えられたとき、私は、Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequestに感謝を使用します、です1。

アプリ/設定/のrouting.yml

entrypoint: 
    resource: 'locale_prefixed_routing.yml' 
    prefix: /{_locale} 

そしてlocale_prefixed_routing.yml輸入はルーティングをバンドル:私がこれまで試したどのような

は次のとおりです。

/fr/url/exampleが機能しますが、/url/exampleは404ページを返しません。

URLにロケールを使用するようにsymfonyに指示します(存在しない場合)。データベースにそのロケールを使用しますか?

答えて

-1

ロケールがユーザーによって提供されていない場合は、データベースにロケールを格納するのが奇妙に聞こえます。任意のロケールのない/url/exampleのようなルートがあなたの中で定義されていない

実際
my_route: 
    path:/
    defaults: 

:私はあなたのルートがあなたのlocale_prefixed_routing.ymlにこのように定義されていると仮定し

framework: 
    default_locale: en 
+0

この問題は、デフォルトのロケールには関係しません。むしろルート定義の問題で、ロケールのないルートは定義されていません。代わりに使用するロケールでデフォルトルートを指定するには、それらを定義する必要があります。 –

0

:あなたは、単にデフォルトのものを追加することができますlocale_prefixed_routing.ymlにロードされたすべてのルートの接頭辞をロケールで尋ねるためです。したがって、ロケールなしでそのようなルートを要求するときにエラーを得るのは正常です。

non_localized_routing.ymlという名前の別のルーティングファイルを、特定のデフォルトを使用する以外は同じルートを含むようにすることができます。

例:

route_example: 
    path: /url/example 
    defaults: 
     _controller: FrameworkBundle:Redirect:urlRedirect 
     path: /{_locale}/url/example 
     permanent: true 

が、それはあなたの問題を取り除くためにあなたを許可した場合、私はまだそれをテストしていない教えてください。

関連する問題