язык и страна для всех маршрутов API - PullRequest
0 голосов
/ 27 июня 2018

Я защитил несколько маршрутов в «config / routs / modul.yaml» (Symfony 4). Мне нужен для каждого отдыха маршрут округа и языка.

# Modul route definition
sym_modul1:
    path: /{country}/{language}/modul/test1
    controller: App\Controller\ModulController::test1
    requirements:
        language: en|fr|de|es|cs|it
        country: GB|FR|DE|ES|CS|IT

sym_modul2:
    path: /{country}/{language}/modul/test2
    controller: App\Controller\ModulController::test2
    requirements:
        language: en|fr|de|es|cs|it
        country: GB|FR|DE|ES|CS|IT

sym_modul2:
    path: /{country}/{language}/modul/test3
    controller: App\Controller\ModulController::test3
    requirements:
        language: en|fr|de|es|cs|it
        country: GB|FR|DE|ES|CS|IT

Пока все хорошо. Но мне не нравится идея (позже, когда есть много маршрутов) добавить новую страну или язык в каждый файл и каждый маршрут.

Я видел в демонстрационной версии Symfony, можно определить глобальный символ {_locale} для маршрутов. В "config / rout.yaml" это выглядит так

homepage:
    path: /{_locale}
    controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController::templateAction
    requirements:
        _locale: '%app_locales%'
    defaults:
        template: default/homepage.html.twig
        _locale: '%locale%'

Но я думаю, что это будет работать только с {_locale}, потому что _locale установлено во внутреннем пользовательском объекте. Есть ли лучший способ сделать это в Symfony?

1 Ответ

0 голосов
/ 27 июня 2018

Я думаю, вы могли бы сделать:

your_app_routing:
  resource: 'modules.yml'
  prefix: /{country}/{language}
  requirements:
    language: en|fr|de|es|cs|it
    country: GB|FR|DE|ES|CS|IT

Затем в modules.yml:

# Modul route definition
sym_modul1:
  path: /modul/test1
  controller: App\Controller\ModulController::test1

sym_modul2:
  path: /modul/test2
  controller: App\Controller\ModulController::test2

sym_modul2:
  path: /modul/test3
  controller: App\Controller\ModulController::test3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...