web-dev-qa-db-ja.com

多言語対応のコントローラーのルーティング

私のDrupal 8多言語プロジェクトで、基本的なページを作成するカスタムコントローラーを作成しましたが、ルーティングで使用する必要のあるパラメーターがわかりません。これは_locale

これはルートの定義です。

custom.route:
path: '{_locale}/portail'
defaults:
  _content: '\Drupal\my_module\Controller\DisplayController::display'
requirements:
_access: 'TRUE

これは私がコントローラークラスで使用しているコードです。

public function display(Request $request, $locale) {
    var_dump($locale);die;
}
1
lchabrand

言語が検出され、ルーティングの前にプレフィックスが削除されます。したがって、パラメーターのない静的ルートがあり、コントローラーで言語マネージャーからプレフィックスを取得できます。

  $langcode = $this->languageManager()->getCurrentLanguage()->getId();
4
4k4