2013-02-07 11 views
7

Come posso ottenere dati utente nel generatore di KnpMenuBundle?knpmenubundle: come ottenere i dati dell'utente nel builder?

so di poter ottenere i dati utili attraverso questa linea nel controller:

$user = $this->get('security.context')->getToken()->getUser(); 

ma voglio che per ottenere nel mio menu builder entrava, così posso mettere il nome utente nel menu.

risposta

8

Simshaun ha tutti i diritti. Dopo alcune ricerche sono riuscito a fare in questo modo:

  1. Aggiungere l'iniezione sul services.yml:

    administration_main.menu.main: 
        class: Knp\Menu\MenuItem 
        factory_service: administration_main.menu_builder 
        factory_method: createAdministrationMainMenu 
        arguments: ["@request","@security.context"] 
        scope: request 
        tags: 
         - { name: knp_menu.menu, alias: administrationMain } 
    
  2. usarlo sul costruttore menù

    use Symfony\Component\Security\Core\SecurityContext; 
    
    public function createAdministrationMainMenu(Request $request, SecurityContext $securityContext){ 
    
        $securityContext->getToken()->getUser(); 
    
    }