Cache nefunguje v funkcich onSuccess[]

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

Ahoj,

potrebuji cashovat data z formularu.

V presenteru vytvorim Cache

public function startup() {
    ...
    $this->local_cache = new Cache($this->context->cacheStorage,'<namesapce>');
    ...
}

a pote ji chci pouzit v metode, ktera se zavola submitnu-li formular (tedy funkce z onSuccess).

public function onSuccessFunction() {
    ...
    $this->cache_storage->save(<key>, <data>) // data -- standardni PHP pole
    ...
}

Nefunguje! Dival jsem se do zlozky temp/cache/_<namesapce> → je prazdna, jako kdybych nic neulozil. (lepe receno, pri dalsim volani presenteru vrati $this->local_cache->load(<key>) vrati NULL)
Nevim co stim.

Nenarazil nekdo na podobny problem a podarilo se mu ho vyresit?

Editoval koudis (27. 9. 2013 13:28)

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

Nemáš to ukládat přes cache_storage ale přes local_cache. Divím se, že to na tebe neřve nějakou chybu.

koudis
Člen | 33
+
0
-

CherryBoss napsal(a):

Nemáš to ukládat přes cache_storage ale přes local_cache. Divím se, že to na tebe neřve nějakou chybu.

Aha. Jaky je rozdil mezi cache_storage a local_cache? Mohl by jsi mi sem prosim hodit prila, jak na to, aby to fungovalo korektne?

Editoval koudis (27. 9. 2013 13:45)

s4muel
Člen | 92
+
0
-

ako pises, v presenteri vytvoris cache ale mas ho vytvoreny ako: $this->local_cache a $this->cache_storage ti (pravdepodobne) neexistuje. rozdiel je teda len v tom, ze si si cache objekt nazval inak ako chces pouzit.

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

Vytvořil sis cache do poperty local_cache takže dál máš používat to. Možná že cache_storage nemáš ani definovaný…

koudis
Člen | 33
+
0
-

s4muel napsal(a):

ako pises, v presenteri vytvoris cache ale mas ho vytvoreny ako: $this->local_cache a $this->cache_storage ti (pravdepodobne) neexistuje. rozdiel je teda len v tom, ze si si cache objekt nazval inak ako chces pouzit.

joo taak. JE TO PREKLEP – cache_storage je local_cache. Tedy:

public function startup() {
    ...
    $this->local_cache = new Cache($this->context->cacheStorage,'<namesapce>');
    ...
}
public function onSuccessFunction() {
    ...
    $this->local_cache->save(<key>, <data>) // data -- standardni PHP pole
    ...
}

takto to mam ve wsvem zdrojovem kodu. Tento zdrojovu kod nefunguje, jak je popsano vyse…

Editoval koudis (27. 9. 2013 14:00)

koudis
Člen | 33
+
0
-

nikdo nevi?

David Matějka
Moderator | 6445
+
0
-

mas dobre nastavenej ten onSuccess callback? zavola se ti ta onSuccessFunction?

koudis
Člen | 33
+
0
-

matej21 napsal(a):

mas dobre nastavenej ten onSuccess callback? zavola se ti ta onSuccessFunction?

No, ja ho ani nemel nastaveny, takze se dana funkce vubec nevolala.

Diky :).