Symfony2将简单路由重定向到默认语言

时间:2014-03-26 09:53:51

标签: php symfony login routes

你好吗?我正在开发一个使用Symfony2的多语言平台。如果有人在www.url.com/project中输入,我想将其重定向到www.url.com/en/project。什么是最简单的方法,不重复方法和所有路线几次?

主要网址www.url.com至www.url.com/en/我使用以下控制器

    public function rootAction(Request $request) {
    $locale = $request -> getLocale();
    return $this -> redirect($this -> generateUrl('dbe_underConstructionLang', array('_locale' => $locale)));
    }

这里的路线: 默认值:

dbe_underConstruction:
    path:     /
    defaults: { _controller: DbeBundle:UnderConstruction:root }

这是默认页面

dbe_aboutus:
    path:     /{_locale}/aboutus
    defaults: { _controller: DbeBundleBundle:Aboutus:index }
    requirements:
        _locale: en|fr|de

此外,我无法使登录路由多语言,因为在security.yml中,我无法设置所需的_locale参数:

dbe_login:
path:     /login
defaults: { _controller: DbeBundle:Login:login}

 firewalls:
    secured_area:
        pattern:    ^/
        form_login:
            check_path: /login_check
            login_path: /login
        logout:
            path:   /logout
            target: /

谢谢!

1 个答案:

答案 0 :(得分:1)

对我来说,最好的解决方案是使用JMSI18RoutingBundle。 config.yml中有一些配置,没有别的 - 在routing.yml中没有变化。