Nastavení hodnot formuláře na více místech

ondrapech
Člen | 49
+
0
-

Ahoj,
řeším problém. V render metodě nastavuji formuláři zákzaník výchozí hodnoty přes

if ($id) {
    $this['customerForm']->setDefaults($this->ordersModel->getCustomer($id)->fetch()->toArray());
}

Což funguje dobře ale pak tam mám formulář na vyhledávání v ARESu, který by měl po odeslání změnit hodnoty hormulář zákazník.
Myslím si, že že teď to funguje tak, že po odeslání formuláře co hledá v aresu se sice změní výchozí hodnoty ale potom v metodě render se zase změní na ty z databáze. A to bych potřeboval vyřešit. Nastavit jiné výchozí hodnoty než v metodě render v případě že bych bezprostředně odeslaný formulář na vyhledávání v aresu. Data z Aresu si nemůžu uložit do databáze, protože ještě nevím, jestli to uživatel bude chtít udělat nebo bude hledat další kontakt.
Předem moc děkuju za rady :)

PS. Pomohlo by po vyhledání v aresu překreslit zák. formulář jako ajaxový snippet? Podle mě ne, protože i tam se volá metoda render.

dms
Člen | 87
+
+2
-

Ahoj, přesuň nastavení výchozích hodnot do metody action. Cyklus je startup, action, handle (což je i odeslani formuláře), render

Šaman
Člen | 2634
+
+4
-

Přesně. Doporučuji dělat všechno v action metodě, kromě nastavování hodnot $this->template->…, které jediné patří do render. Z pohledu MVC/MVP je render metoda součástí View, zatímco action je presenční vrstva.