Form setAction
- roadster
- Člen | 2
Mám následující problém. V jednom presenteru mám formulář na vyhledávání ale data z formuláře chci posílat jinému presenteru (SearchPresenter). Ať dělám co dělám tak se nedaří. V presenteru s formulářem mám následující kód:
<?php
public function actionDefault()
{
...
/* @var $form AppForm */
$form = $this->buildSearchForm();
$form->setAction($this->link('Search:Search', array('do' => 'search-submit')));
....
}
?>
a v presenteru Search mám
<?php
public function actionSearch($form)
{
...
}
?>
Pořád mi to ale hází vyjímku BadSignalException #403 – The signal receiver component ‚search‘ is not found. I když přidám $form->onSubmit[] = array(‚Search‘, ‚Search‘); .. Jsem se Nette začátečník, takže ocením každou radu:) díky..
- roadster
- Člen | 2
To je sice řešení, ale když pak budu chtít mít tenhle formulář na víc stránkách, tak ho budu muset takhle ošetřovat v každym presenteru zvlášť… nebo si budu muset udělat nějakýho předka a ošetřovat to v něm. Jenže to musim všem presenterum nastavit že od něj maji dědit.. Nevim přijde mi, že to musí jít určitě nějak jednoduše, jenom dělám nějakou základní chybu:)
- jasir
- Člen | 746
roadster napsal(a):
To je sice řešení, ale když pak budu chtít mít tenhle formulář na víc stránkách, tak ho budu muset takhle ošetřovat v každym presenteru zvlášť… nebo si budu muset udělat nějakýho předka a ošetřovat to v něm. Jenže to musim všem presenterum nastavit že od něj maji dědit.. Nevim přijde mi, že to musí jít určitě nějak jednoduše, jenom dělám nějakou základní chybu:)
Přesuň formulář do vlastní komponenty a řeš ten handling v komponentě. Pak v každém presenteru, kde chceš použít jeho funkčnost jenom použiješ tu komponentu. (Nebo připoj komponentu v BasePresenteru – pak bude dostupná ve všech presenterech, které od něj dědí.)
Editoval jasir (11. 6. 2009 12:16)
- _Martin_
- Generous Backer | 679
V Nette je takový užitečný zvyk (nikoliv nutné pravidlo) dědit
všechny presentery od tzv. BasePresenter
u, který slouží
například pro registrování společných filtrů šablon či společných
komponent. Tohle by byla práce přesně pro něj, za použití továrničky
na komponenty.