我在Symfony 4.1上运行了一个i18n项目。
我想实现一些路由,如:
在article之后,我使用注释来处理路由,并为注释路由设置了一个全局前缀:
site:
resource: '../src/Controller/'
type: annotation
prefix:
en: '/en'
fr: '/fr'
这样,来自' ../ src / Controller /'的注释中定义的所有路线是前缀,这导致我和#34;选择语言"之间的冲突。页面和主页。
我想排除"选择语言"来自i18n前缀的页面,所以我能够使用" /"对于此页面,当主页可以保持/ fr或/ en。
实现这一目标的任何想法?
答案 0 :(得分:2)
在没有前缀选项的annotations.yaml
顶部定义此路线:
_choose_language:
path: /
controller: App\Controller\ChooseLanguageController
site:
resource: '../src/Controller/'
type: annotation
prefix:
en: '/en'
fr: '/fr'
并且不对此特殊控制器使用路径注释:
class ChooseLanguageController
{
public function __invoke()
{
return new Response('Choose Language!');
}
}
此操作可以从i18n前缀中排除。