Undefined method Identity:setData() … prečo tam nie je?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
iNviNho
Člen | 352
+
0
-

Rozširujem si triedu Nette\Security\User tak, aby som mal vždy česrtvé data v identite usera. Akonáhle si vyžiadam identitu cez getIdentity() a zavolám nad ňou metodu setData(), tak mi píše, že metoda neexistuje. Ok, takže pozerám Nette\Security\Identity a chýba mi tam metoda setData()@DavidGrudl Je tam táto metoda vynechaná z nejakého určitého dôvodu?

<?php
/**
     * Set always fresh and updated data in session
     * @return void
     */
    public function setFreshData() {

	$data  = $this->userRepository->getUserById($this->getId());

	$this->getIdentity()->setData($data);

    }
?>

BTW settery a gettery pre ostatné privátne premenné tam sú.

Editoval iNviNho (5. 11. 2015 17:55)

David Matějka
Moderator | 6445
+
0
-

ty data tam muzes dostat pomoci:

foreach ($data as $key => $value) {
	$identity->$key = $value;
}