Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有默认区域设置的细枝路径_Php_Symfony_Routing_Localization_Twig - Fatal编程技术网

Php 没有默认区域设置的细枝路径

Php 没有默认区域设置的细枝路径,php,symfony,routing,localization,twig,Php,Symfony,Routing,Localization,Twig,在我的symfony3.3项目中,我使用locale系统来更改用户语言。我已将路由配置为允许“en”版本不在url中 acme_front_office: resource: "@AcmeFrontOfficeBundle/Resources/config/routing.yml" prefix: /{_locale} defaults: { _locale: 'en'} requirements: _locale: '|en|fr' 因此,

在我的symfony3.3项目中,我使用locale系统来更改用户语言。我已将路由配置为允许“en”版本不在url中

acme_front_office:
    resource: "@AcmeFrontOfficeBundle/Resources/config/routing.yml"
    prefix:   /{_locale}
    defaults: { _locale: 'en'}
    requirements:
        _locale: '|en|fr'
因此,这些url将全部重定向到同一页面:

/home
/en/home
/fr/home
但是在我的小树枝模板中,{path()}}函数默认设置为正确的语言环境,除了当我的用户看到网站的英文版本时,我希望生成的url指向
/home
,而不是
/en/home

如果您知道如何在不更改所有的
path()
调用以覆盖_locale参数的情况下实现这一点,我将非常感激


祝你今天愉快;)

经过一些挖掘,我提出的解决方案是重写Symfony路由系统的一些部分。如果您想检查解决方案,可以在下面的gitlab repo中的
路由
目录中找到代码