Uložení do proměnné v handle metodě

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

Ahoj všichni, jak se dá řešit uložení do proměnné v handle metodě? Mám tabulku, kterou prvním signálem zkrátím o nějaké řádky a když bych jí pak chtěl ještě setřídit podle nějakého sloupce tak si potřebuji někde uložit, že už je zkrácená. Zkoušel jsem to přes proměnné, ale z nějakého důvodu to nešlape. Ta proměnná $x j pořád null. Napadlo mě to řešit přes sessions, ale snad to musí jít nějak jinak ne? Děkuji.

private $x = NULL;
public function handleArchived()
{
	$this->x = 4;
	$this->template->reports = $this->reports->getTable()->where('status_id', 4);
	$this->redrawControl('reportsTable');
}
public function handleSortByDateAsc()
	{
		$this->template->reports = $this->reports->getTable()->where(status_id', $this->id)->order('created ASC');
		$this->redrawControl('reportsTable');

	}
Darkling
Člen | 35
+
+2
-

Ahoj,
zkus persistentní parametry viz https://doc.nette.org/…n/presenters#…

Oli
Člen | 1215
+
+1
-

@lukendo no jasně že je null. Však ji taky nastavuješ na null. Musíš si uvědomit, že PHP je bezstavové a každý požadavek spustí skript znova. Tzn. Ty si nějak nastavíš $x a ukončíš požadavek. Pak přijde nový požadavek, ale ten předchozí už je mrtvý a nikdo neřekl $xu, že má mít nějakou hodnotu. Jen v tom minulém požadavku a ten už je mrtvý.

Jak psal @Darkling. Na tohle se přesně používají persistentní parametry. Pokud by jsi tam měl nějaký složitý data (pole, objekt, …) tak pak leda ta session.

lukendo
Člen | 96
+
0
-

Darkling napsal(a):

Ahoj,
zkus persistentní parametry viz https://doc.nette.org/…n/presenters#…

Děkuji, funguje.

lukendo
Člen | 96
+
0
-

Oli napsal(a):

@lukendo no jasně že je null. Však ji taky nastavuješ na null. Musíš si uvědomit, že PHP je bezstavové a každý požadavek spustí skript znova. Tzn. Ty si nějak nastavíš $x a ukončíš požadavek. Pak přijde nový požadavek, ale ten předchozí už je mrtvý a nikdo neřekl $xu, že má mít nějakou hodnotu. Jen v tom minulém požadavku a ten už je mrtvý.

Jak psal @Darkling. Na tohle se přesně používají persistentní parametry. Pokud by jsi tam měl nějaký složitý data (pole, objekt, …) tak pak leda ta session.

Děkuji za vysvětlení :)