Změna dat v identitě uživatele
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- matoni555
- Člen | 40
Zdravím,
v databázi mám u uživatele sloupec blocked, tedy jestli je blokovaný.
Když se uživatel přihlásí a z jiného účtu ho někdo zablokuje, tak
potřebuji, aby se to promítlo do jeho identity.
Zkoušel jsem to nastavit takto, kde pole $data obsahuje změněné pole:
$this->getUser()->getIdentity()->data = $data;
ale hlásí mi to chybu: Cannot write to a read-only property Nette\Security\Identity::$data.
Můžete mi prosím poradit, jak změnit data v identitě?
Díky
- hAssassin
- Člen | 293
@matoni555 > ano to nejde, protoze
Identity
nema pro $data
setter, cili to takle napsat
nemuzes. Muzes ale pridat vsechny dalsi veci do dat pres magickou
__set
ale primo k $data
se nedostanes:
$this->user->identity->data = $data; // spatne, nejde, lze jen v konstruktoru Identity
// Takhle lze
$hits->user->identity->value1 = $value1;
$hits->user->identity->value2 = $value2;
$hits->user->identity->value3 = $value3;
...
// Nebo treba takhle (taky by to melo fungovat)
$data = array("value1" => 1, "value2" => 2, "value3" => 3, ...);
foreach($data as $key => $value) {
$hits->user->identity->$key = $value;
}