当前位置: 首页 > 知识库问答 >
问题:

Symfony2.0.0在security.yml获取语言环境

曾喜
2023-03-14

我用的是Symfony2.0.0我没有机会更新Symfony这是我的security.yml

firewalls:
        main:
          logout: true
          pattern: .*
          http_basic: true
          anonymous: true
          form_login:
            provider: fos_userbundle
            login_path: /login
            use_forward:  true
            check_path: /login_check
            failure_path: /login_fail
          remember_me:
            key:      "lkjxd%34(lksdf;SDfsf"
            lifetime: 31536000
            path:     /
            domain:   ~

我如何为我的failure_path使用区域设置。尝试使用/%locaale%/failure_path但它总是返回en(我的默认语言环境)。它不理解路由名称。如果我使用路由的名称,例如login_fail它不起作用(像相对路径一样重定向)。

这是我的路线。

login_fail:
  pattern: /{_locale}/login_fail
  defaults: { _controller: ContactbeeProfileBundle:Profile:dashboard, _locale: en }

有办法修好它吗?

共有1个答案

上官锦
2023-03-14

在实际处理请求之前,在编译DIC之前加载配置,因为可以从request访问配置,所以无法访问配置中的区域设置。

如果您不介意一个额外的重定向,您可以执行一个操作,在身份验证失败后将用户重定向到正确的路由:

namespace Acme\DemoBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class SecurityController extends Controller {
    public function failedAction() {
        return $this->redirect($this->generateUrl('login_fail_localized'), [
            'locale' => $this->getRequest()->getLocale()
        ]);
    }
}

设置失败路径以匹配其路由:

# routing.yml
login_fail:
    pattern: /login_fail
        defaults: { _controller: AcmeDemoBundle:Security:failed }

login_fail_localized:
    pattern: /{locale}/login_fail
        defaults: { _controller: ContactbeeProfileBundle:Profile:dashboard }
 类似资料:
  • 问题内容: 我有一个语言代码列表(如“ en”,“ es” …),我需要用以下语言显示: 是否有任何内置API可以在Android中获取这些文件,还是我应该自己映射它们? 问题答案: 该班有一个方法,这个:作为文档说: 返回此语言环境的语言名称,本地化为 。确切的输出形式取决于此语言环境是否对应于特定的语言,脚本,国家/地区和变体。 因此,您可以像这样获得语言环境的语言名称:

  • X2.2.0新增 sp_check_lang() 功能: 判断当前的语言包,并返回语言包名 参数: 无 返回: 类型string 包名,如:zh-cn 使用: $lang=sp_check_lang();

  • 确定当前给定区域设置的短日期格式的最佳方法是什么? 例如,如果我的脚本的语言环境设置为荷兰语,我希望以某种方式获得该特定语言环境中使用的短日期格式,它将是: 年月日 如果设置为American,我希望获得美国地区的日期格式: 年月日 等等

  • 问题内容: 我有一个奇怪的问题,当我创建一个具有区域设置的日历时,TimeZone只是还原为本地日历 这是输出: 如何从特定的语言环境中获取适当的时间? 问题答案: 简短的答案:您不能。 长话大说:没有“语言环境的正确时区”之类的东西。这仅仅是因为有些国家/地区具有多个时区(例如美国)。时区是一个不同的概念。 无论如何,您正在寻找解决问题的方法。我猜您正在编写Web应用程序,并且看到时区已恢复为服

  • 主要内容:循环控制语句当您需要执行一段代码多次时就可能要执行循环了。一般来说,语句按顺序执行。首先执行函数中的第一个语句,然后执行第二个语句,依此类推。 编程语言提供了允许更复杂的执行路径的各种控制结构。 循环语句允许我们多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 - R编程语言提供以下种类的循环来处理循环需求。可单击以下链接来查看其详细信息。 序号 循环语句 描述 1 repeat循环 多次执行一

  • 问题内容: 我用来将货币从BigDecimal格式化为字符串。按预期工作,问题在于我们的主要目标是荷兰市场,而默认的荷兰格式很奇怪。 让我解释一下,当格式化-125时,荷兰语将得到“€125-”(预期为“-€125”)。英国按预期方式提供“-£125.50”。 我可以检查语言环境是否为荷兰语,然后在每次我要设置小数格式时都提供一个模式。但是我更喜欢一个解决方案,它可以覆盖荷兰的格式设置。我在考虑以