繁体   English   中英

knpmenubundle:如何在构建器中获取用户数据?

[英]knpmenubundle: How to get user data in builder?

如何在KnpMenuBundle的Builder中获取用户数据?

我知道我可以通过Controller中的这一行获取用户数据:

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

但是我想让它进入我的菜单构建器,所以我可以将用户名放在菜单中。

您的MenuBuilder被定义为Symfony2中的服务,您可以在https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/doc/menu_service.rst中看到

基本上,您需要做的就是配置MenuBuilder服务定义以注入安全上下文。 http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services

Simshaun完全正确。 经过一些研究,我设法做到这样:

  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(); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM