首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组件中的Nette getUser

组件中的Nette getUser
EN

Stack Overflow用户
提问于 2017-01-04 22:53:35
回答 1查看 596关注 0票数 3

我不得不问如何将登录用户的名称放入Nette组件(SomethingControl.php)中。显然我不能这么做:

代码语言:javascript
复制
$identity = $this->getUser()->getIdentity();
if ($identity) $this->template->username = $identity->getData()['username'];

所以我试着这样做:

代码语言:javascript
复制
$this->template->username = $this->user

但这也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2017-01-04 23:35:06

您无法以这种方式获取用户,因为UI\Control不是UI\Presenter的后代。但是Nette\Security\User是在DIC中注册的服务,所以你可以像这样得到它:

代码语言:javascript
复制
class SomethingControl extends \Nette\Application\UI\Control
{

    /**
     * @var \Nette\Security\User
     */
    private $user;

    public function __construct(\Nette\Security\User $user)
    {
        parent::__construct();
        $this->user = $user;
    }

    public function render()
    {
        bdump($this->user); // getIdentity and username
    }

}

只需确保您使用的是Component Factory -意思是不要使用new运算符在presenter中创建您的组件。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41466756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档