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.