Я защитил несколько маршрутов в «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?