2013-02-07 5 views
7

KnpMenuBundleのBuilderでユーザーデータを取得するにはどうすればよいですか?knpmenubundle:ビルダーでユーザーデータを取得する方法

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

が、私はそれが私のメニュービルダーaswellで取得したいので、私はメニューにユーザ名を入れることができます。

は私がコントローラーにこのラインを介してユーザデータを取得することができます知っています。あなたは基本的に https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/doc/menu_service.rst

に見ることができるよう

答えて

8

シムシャンは本当に正しいです。いくつかの研究の後、私はこのようにそれを行うために管理:

  1. 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. use Symfony\Component\Security\Core\SecurityContext; 
    
    public function createAdministrationMainMenu(Request $request, SecurityContext $securityContext){ 
    
        $securityContext->getToken()->getUser(); 
    
    } 
    
メニュービルダーでそれを使用します
関連する問題