Jiné chování prersistentních parametru od verze 2.2

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

Zdravím, narazil jsem na chování parametrů, při přechodu z verze 2.1 na 2.2.*(3), které mě mate. Používal jsem ke změně persistentního parametru (při řazení v datagridu) signál. Nyní když použiji signál a v handleSignal($var) nastavím $this->foo = $var a náslědně provedu redirect tak se parametr nastaví po reloadu zpět na původní hodnotu. Udělal jsem demonstaci na sendboxu

class HomepagePresenter extends BasePresenter
{

    /** @var string @persistent */
    public $foo;

	/** @param srting $foo */
	public function renderDefault($foo = 'bar')
	{
        if (!$this->foo) {
            $this->foo = $foo;
        }
		$this->template->foo = $this->foo;
	}

	/** @param srting $var */
    public function handleChange($var) {
        $this->foo = $var;

        $this->redirect('this');
    }

}

Napadá někoho co je v nové verzi jinak a jak toto nejlépe řešit?

Felix
Nette Core | 1270
+
0
-

Persistentni parametry funguji imho porad stejne. Tenhle kod ti v Nette 2.1 funguje v pohode?

mkoubik
Člen | 728
+
0
-

Jediná změna kterou si vybavuju bylo že do persistentního parametru nejde nacpat pole, pokud ho nemá jako výchozí hodnotu.

David Matějka
Moderator | 6445
+
+2
-

muze za to tenhle commit. Tak to vypada, ze to BC break zpusobilo…

milacekmartin
Člen | 4
+
0
-

Tak jsem to trochu odtestoval a poslední verze kde to šlo je 2.1.5. @matej21 má naprostou pravdu. je to v tom commitu. Díky za pomoc :).