2013-12-22 3 views
0

현재 UI 언어를 설정하려면 사용자 정보가 UserProvider 객체 (loadUserByUsername 메소드)에서 검색 될 때 세션 변수로 사용자 기본 언어를 설정해야합니다.Symfony2에서 UserProvider 객체의 세션 변수를 설정하는 방법은 무엇입니까?

어떻게 Session에 액세스하여 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 } 
관련 문제