我在parameters.yml
parameters:
locale: en
locales: [ en, de, fr, it, es, pt, ru, ja, zh ]
并希望在locales
routing.yml
参数
homepage_locale:
pattern: /{_locale}
defaults: { _controller: SiteBundle:World:index }
requirements: { _locale: %locales% }
但这显然会导致
The container parameter "locales", used in the route configuration value
"%locales%", must be a string or numeric, but it is of type array.
有没有办法重用这个参数,或者我真的必须将语言环境编写为字符串来满足这种yaml / regex格式,如下所示:
en|de|fr|it|es|pt|ru|ja|zh
答案 0 :(得分:2)
在src / AppBundle / DependencyInjection / AppExtension.php
中您可以在此代码中添加加载功能
$languages = $container->getParameter('languages');
$container->setParameter('languages_string', implode('|', $languages));
然后您可以在注释中使用
* requirements={"_locale": "%languages_string%"},
它可以防止配置文件中的重复参数。
答案 1 :(得分:1)
怎么样:
parameters:
locale: en
locales: en|de|fr|it|es|pt|ru|ja|zh
答案 2 :(得分:-1)
也许你必须尝试
_locale: en|de|fr|it|es|pt|ru|ja|zh
好看的