Problematický zápis získávání dat o přihlášeném uživateli

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

Zdravím,
už delší dobu vyvíjím web na Nette 2.0.10, celou dobu dělám na localhostu. Dnes jsem ji poprvé nahrál na server, kde bude ve finále běžet, abych ověřil kompatibilitu. Čisté Nette (a i s dibi) jede bez problému, ale když chci získat data o uživateli, na serveru mi nefunguje zápis:

$this->getUser()->getIdentity()->getData()['user_id']

Aby to fungovalo, musím napsat:

$uzivatel = $this->getUser()->getIdentity();
$uzivatel->user_id;

Tento první problematický zápis používám docela často z důvodu použití vlastního logovacího systému v administraci a nechce se mi celý web přepisovat, tak se chci zeptat, jestli na to není nějaké fce nebo postup, jak jednoduše serveru říct, aby ho akceptoval.
Díky

David Matějka
Moderator | 6445
+
+3
-

ten zapis je mozny az od php 5.4, takze na hostingu mas asi 5.3. (http://3v4l.org/FjOLK)

z tve strany s tim nic neudelas, maximalne vymenit hosting.. (nebo se zeptej, jestli nemaji podporu pro 5.4)

slawe
Člen | 11
+
0
-

Tak to jsem vy pytli a budu manuálně přepisovat… Upgrade z 4 na 5.3 jsem z nich mlátil půl roku, hosting je u místního providera a protože klient od nich má další služby, nechce odejít. Díky za odpověď.

Michal Vyšinský
Člen | 608
+
0
-

možná by stačilo najít výskyt ()[ a nahradit za ()→ protože objektový přístup na getData() by měl fungovat

Blbost… getData() vrací vlastně array

Editoval Michal Vyšinský (23. 7. 2014 13:01)

Šaman
Člen | 2666
+
0
-

Stačí v presenteru $this->user->id; Na ostatní údaje v identitě ne, ale na idčko ano.

Aurielle
Člen | 1281
+
+1
-

Za předpokladu, že při tvoření identity předáváš právě tohle IDčko. Jinak by mělo fungovat $user->identity->whatever namísto tvého zápisu s getData().