Uložení do proměnné v handle metodě
- lukendo
- Člen | 96
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');
}
- Oli
- Člen | 1215
@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
$x
u, ž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
Darkling napsal(a):
Ahoj,
zkus persistentní parametry viz https://doc.nette.org/…n/presenters#…
Děkuji, funguje.
- lukendo
- Člen | 96
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$x
u, ž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í :)