【问题标题】:Symfony2 redirect simple routes to default languageSymfony2 将简单路由重定向到默认语言
【发布时间】:2014-03-26 09:53:50
【问题描述】:

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

对于 www.url.com 到 www.url.com/en/ 的主 url,我使用以下控制器

    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: /

已经谢谢了!

【问题讨论】:

  • 检查this,希望你能找到一些解决方案..

标签: php symfony login routes


【解决方案1】:

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

【讨论】:

  • 意味着没有这个捆绑包我需要写下所有的路线?
猜你喜欢
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多