2013-12-22 39 views
0

爲了設置當前的UI語言,當從UserProvider對象(loadUserByUsername方法)中檢索用戶信息時,我需要將用戶默認語言設置爲會話變量。如何從Symfony2中的UserProvider對象設置會話變量?

如何訪問會話以從UserProvider對象設置當前的UI語言?

你知道更好的方法來管理UI當前語言嗎?

+0

你應該看看這個:http://symfony.com/doc/current/cookbook/session/locale_sticky_session.html – Hast

+0

聽起來很不錯,但我如何從UserProvider對象訪問該偵聽器? – hertsmael

回答

0

您可以將此數據添加到請求偵聽器中的請求中。並在稍後取回。

/** 
* Set the right format to notify FosRest Handle view regarding the real format that the request contain 
* 
* @param GetResponseEvent $event 
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException 
*/ 
public function onKernelRequest(GetResponseEvent $event) 
{ 
    $request = $event->getRequest(); 
    $callback = $request->get('callback'); 


    if ($callback!=''){ 
     $event->getRequest()->attributes->set('_format','jsonp'); 
    } 


} 

和services.yml:

kernel.listener.callback_request: 
     class: CallbackRequestListener 
     arguments: [] 
     tags: 
      - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }