gpt4 book ai didi

php - 组件中的 Nette getUser

转载 作者:行者123 更新时间:2023-12-04 14:26:11 25 4
gpt4 key购买 nike

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

$identity = $this->getUser()->getIdentity();
if ($identity) $this->template->username = $identity->getData()['username'];

所以我试过这个:

$this->template->username = $this->user

但这也不起作用。

最佳答案

你不能像这样获取用户,因为 UI\Control 不是 UI\Presenter 的后代.但是 Nette\Security\User 是在 DIC 中注册的服务,所以你可以这样获取它:

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 运算符在演示器中创建组件。

关于php - 组件中的 Nette getUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com