Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/06/2015, 02:33
Avatar de cluster28
cluster28
 
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 4 meses
Puntos: 32
Respuesta: KnpMenuBundle junto a JMSI18nRoutingBundle

Por fin he encontrado un hueco para darle un repaso a esto. Ya lo he conseguido.

Injecto el objeto request en el MenuBuilder y junto con el container que ya tenía injectado podemos hacer la jugada.

Código PHP:
private function cargarIdiomas(KnpMenuMenuItem $menu)
    {
        
$router $this->container->get('router');
        
$route $this->request->get('_route');
        
$locale $this->request->get('_locale');
        
$arrayParametros $this->request->attributes->all();
        
$arrayParametros $arrayParametros['_route_params'];
        
        if(
$locale != "es"){ 
            
$arrayParametros['_locale'] = "es";
            
$menu->addChild('ES', array('uri' => $router->generate($route$arrayParametros))); 
        }
        if(
$locale != "fr"){ 
            
$arrayParametros['_locale'] = "fr";
            
$menu->addChild('FR', array('uri' => $router->generate($route$arrayParametros))); 
        }
        if(
$locale != "en"){ 
            
$arrayParametros['_locale'] = "en";
            
$menu->addChild('EN', array('uri' => $router->generate($route$arrayParametros))); 
        }
    }
    
    public function 
setRequest(RequestStack $request_stack)
    {
        
$this->request $request_stack->getCurrentRequest();
    } 
service.yml
Código:
generico.menu_builder:
        class: %class.generico.menubuilder%
        arguments:
            - "@service_container"
        calls:
            - [setRequest, [@request_stack]]