predavanie objektu medzi metodami

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

ahoj,
potreboval by som predat objekt alebo pole (dokezem z neho spravit pole s kopou prvkov) z jednej metody do metody render. V prvej metode robim redirect na druhu, kde potrebujem dany objekt. Zhruba ako v kode nizsie.

<?php
public function metoda1() {
  $objekt;
  $this->redirect('metoda', TRUE);
}

public function renderMetoda($status) {
  if (status) {
   ...
  }
  else {
    praca s $objekt
  }
}
?>

Skusal som cez globalnu premennu, ale bohuzial po redirekte ma premenna hodnotu ako po inicializacii, napadla ma aj staticka premenna, ale k nej som sa potom nevedel dostat pomocou $this->premenna. Je nejaky sposob ako to spravit? Dakujem.

Solution
Člen | 50
+
0
-

Bud můžeš předávat(pokud to nejsou podstatné a objemné informace) předávat pole pomocí persistent parametru(přidá se do adresy)
https://doc.nette.org/…n/presenters#…
a nebo bych to uložil do session
https://doc.nette.org/…ttp/sessions

redhead
Člen | 1313
+
0
-

Vidím tu nějaké nepochopení PHP obecně. PHP je nestavové. Čili informace se neuchovávají mezi requesty (musí se přenést přes URL, cookie nebo ukládat do session).

Pak statické proměnné jsou proměnné třídy nikoliv objektu a tak nemůžeš přistupovat přes $this->promenna ale přes self::$promenna.

Pokud chceš ukládat objekt, tak nejlépe přes session. Když to budou typy jako int, string tak můžeš přes persistentní proměnné, jako psal Padik.

twtw
Člen | 7
+
0
-

no praveze to je objemne (preto som pisal ze to je pole s kopou prvkov), takze cez persistent parametre nie. Cez session to hadam pojde. Dakujem.
K tomu nepochopeniu… Robim projekt. Informacny system. Mam na to malo casu. Nette aj php sa ucim za behu :-D