vaersion Symfony 3.1.3
我想根据用户偏好设置区域设置,因此我将以下内容添加到用户实体
/**
* @var string
* @ORM\Column(name="locale", type="string",nullable=true)
* @Expose
*/
protected $locale;
/**
* Set locale
* @param string $locale
* @return Users
*/
public function setLocale($locale)
{
$this->locale = $locale;
return $this;
}
/**
* Get locale
* @return string
*/
public function getLocale()
{
return $this->locale;
}
以上工作正常我可以CRUD数据库中的语言环境值
然后,按照本指南Setting the Locale Based on the User's Preferences我创建了UserLocaleListener
,当我按照以下方式调试时
public function onInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
if (null !== $user->getLocale()) {
$this->session->set('_locale', $user->getLocale());
print($this->session->get('_locale'));die;
}
}
print($this->session->get('_locale'));die;
给出了在数据库中存储区域设置值(fr,nl或en)的预期结果。
但是当我使用
时 控制器中的 echo $locale = $request->getLocale();die;
和
树枝中的 {{ app.request.getLocale() }}
结果始终为 en
即使数据库存储值为 nl 或 fr 。
所以,当我使用$request->getLocale()
和app.request.getLocale()
时,我的问题是来自 en 的填充位置?
和
如何避免此 zh_CN 并将数据库存储值设置为区域设置?
如果我想用任何其他信息编辑/更新,请告诉我。