Jak vytvořit globální pole?

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

Zdravím,
snažím se vytvořit pole, do kterého budu vkládat hodnoty. Pole jsem si vytvořil v presenteru, ve které pak taky používám to pole do sql dotazu. Kliknu na nějakou položku a chci, aby se mi přidala do pole – jenže každým kliknutím se to pole znova inicializuje, takže v tom poli nedostanu nikdy více, než jednu položku.

A chci se zeptat, kde toto pole inicializovat, aby jej měl k dispozici po celou dobu běhu aplikace? Napadly mě session, ale v nette jsem s nimi ještě moc nepracoval a taky by mě zajímalo, zda by to šlo i bez nich.
Díky.

Patrik Votoček
Člen | 2221
+
0
-

Najdi si něco o persistentních parametrech…

Manny7
Člen | 67
+
0
-

Zkouším to takto:

class NameOfPresenter extends \BasePresenter
{

    /** @persistent */
    public  $persistentCo_umime = Array();

    public function renderDefault()
    {
  	...
    }

    public function handleTest($par)
    {
 	$persistentCo_umime[] = $par;

	$nam = new \NameOfeManager;
	$this->template->bla= $nam->findAll('table')->where('special IN ('.Implode(', ', $persistentCo_umime).')')->orderBy('name');
	$this->invalidateControl('bla');
	}

A v šabloně pak volám:

<a href="{link test! 'par' => $spec->id}" class="ajax special">$name</a>

Ale pořád dostávám v tom poli pouze jednu hodnotu, nikdy více… pořád mi tu s tím pers. parametrem uniká nějaká souvislost

newPOPE
Člen | 648
+
0
-

Myslim ze polia a persist parametre velmi dokopy nejdu.

Riesil by som to cez SESSIONs, v NETTE sa s nimi pracuje celkom fajn.

Viac najdes v sessions