Keu*_*cht 3 forms locale symfony symfony-2.8
如何获取打字稿中的区域设置?
这是在我的控制器中:
$form = $this->createForm(new ConfiguratorClientType(), $configuratorClient);
Run Code Online (Sandbox Code Playgroud)
我的表单生成器中有这个:
->add('language',
EntityType::class,
array(
'class' => 'CommonBundle:Language',
'choice_label' => function ($language) {
return $language->getName()[$locale];
},
'attr' => array(
'class' => 'form-control'
)
)
)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何获取那里的语言环境。
如果您已经安装了该intl
模块,则可以\Locale::getDefault()
安全地使用来获取当前的语言环境值。即使该方法仅推断默认值,也可以通过\Locale::setDefault($locale)
Symfony 在Request::setLocale
方法中所做的操作来更改它。
因此,这应该适合您:
return $language->getName()[\Locale::getDefault()];
Run Code Online (Sandbox Code Playgroud)
更新:
但是,不建议在最终应用程序中使用此有状态类。相反,您应该遵循依赖倒置原则,将请求堆栈服务注入到构造函数中,并从那里检索当前区域设置(有关更多详细信息,请参阅其他答案),这将更容易测试。
归档时间: |
|
查看次数: |
3203 次 |
最近记录: |