0

このセットアップを取得しようとしていますが、問題があります。 lunetics ロケール バンドルを使用してください。

ユーザーがサイト www.example.com にアクセスすると、バンドルはユーザーのロケールを取得し、そのローカルでページを表示します。たとえば、ユーザーの場所がドイツ語の場合、www.example.com/de が表示されます。

この構成はそれを取得できないようです。

奇妙なことは、そのバンドルがなくても、ルートで奇妙な動作が発生することです。たとえば、次のルートを設定します。

acme_site:
  resource: "@AcmeSiteBundle/Controller/"
  type:     annotation
  prefix:   /{_locale}
  defaults:  { _locale: en }
  requirements:
      _locale:  en|it

www.example.com/en にアクセスすると、ページが表示されます

www.example.com にアクセスすると、ルートがないというエラーが返されました。

私は何を間違っていますか?

4

1 に答える 1

0

コントローラー フォルダーがどのようなものかわかりませんが、次のように AcmeDemoBundle WelcomeController で問題を解決できました。

acme_site_default:
  pattern:   /   
  defaults:  { _controller: AcmeDemoBundle:Welcome:index, _locale: en }

acme_site:
  pattern:   /{_locale}
  defaults:  { _controller: AcmeDemoBundle:Welcome:index}
  requirements:
      _locale:  en|it

_demo_secured:
    resource: "@AcmeDemoBundle/Controller/SecuredController.php"
    type:     annotation

_demo:
    resource: "@AcmeDemoBundle/Controller/DemoController.php"
    type:     annotation
    prefix:   /demo
...

基本的に複数のパターンを定義します。注釈を使用して同じ種類のことを達成できるはずです。

/**
 * @Route("/", defaults={"_locale"="en"})
 * @Route("/{_locale}", requirements={"_locale" = "en|it"})
 */

それが役立つことを願っています!

于 2013-07-15T21:29:35.323 に答える