I have to ask how to get name of logged user into Nette component (SomethingControl.php). Apparently I can't just do this:
$identity = $this->getUser()->getIdentity();
if ($identity) $this->template->username = $identity->getData()['username'];
So I've tried this:
$this->template->username = $this->user
but that doesn't work either.
You cannot get user like this, because UI\Control
is not descendant of UI\Presenter. But Nette\Security\User
is service registered in DIC so you can get it like this:
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
}
}
Just make sure that you are using Component Factory - means do not create your component in the presenter using new
operator.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With