empty a Identity – na inicializované proměnné v $data vrací TRUE
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Aurielle
 - Člen | 1281
 
Verze Nette: 0.9.3 (rev 2ce0ca6 released on 2010–02–02)
Verze PHP: 5.2.9
Volání empty(Environment::getUser()->identity->setVariable) vrací TRUE, i když je daná proměnná nastavená a inicializovaná. Vyřeší nejspíš doplnění funkce __isset() do Identity.
Reprodukce kódu:
$user = Environment::getUser();
$data = $user->identity->getData();
dump(Environment::getUser()->identity->srv_password);
dump(empty(Environment::getUser()->getIdentity()->srv_password));
dump(Environment::getUser()->identity->srv_password == FALSE);
dump(empty($user->identity->srv_password));
dump(empty($user));
dump(empty($user->identity));
dump(empty($user->identity->srv_password));
dump(empty($user->identity->data['srv_password']));
dump(empty($data));
dump(empty($data->srv_password));
dump($data);
Výstup:
string(4) "1234"
bool(TRUE)
bool(FALSE)
bool(TRUE)
bool(FALSE)
bool(FALSE)
bool(TRUE)
bool(TRUE)
bool(FALSE)
bool(FALSE)
array(15) {
   "aid" => string(1) "1"
   "user" => string(4) "Uzivatel"
   "authid" => string(18) "STEAM_0:0:000000"
   "password" => string(40) "hash hesla"
   "gid" => string(1) "1"
   "email" => string(15) "xxx@yyy.cz"
   "validate" => string(0) ""
   "extraflags" => int(-513)
   "srv_immunity" => int(100)
   "srv_password" => string(4) "1234"
   "srv_group" => string(10) "Root admin"
   "srv_flags" => string(20) "abcdefghijklmnopqrst"
   "group_name" => string(4) "Root"
   "lastvisit" => int(1270407463)
   "data" => NULL
}
					Editoval gmvasek (4. 4. 2010 21:11)

- Honza Marek
 - Člen | 1664
 
Identity by určitě metodu __isset zasloužila. Taky jsem na podobný problém narazil.