Vyhledávací formulář v error presenteru nevyhledává
- BigCharlie
- Člen | 284
Mám BasePresenter, v něm definovaný vyhledávací formulář a jeho zpracování:
protected function createComponentSearchForm()
{
$form = new Form;
$form->addText('term', 'Hledat')->getControlPrototype()->class('search');
$form->addSubmit("search", "Vyhledat");
$form->onSuccess[] = $this->processSearchForm;
return $form;
}
public function processSearchForm(Form $form)
{
$this->redirect('Search:default', $form->values->term);
}
Mám ErrorPresenter, který je potomkem BasePresenteru. Když vlezu na neexistující adresu xy.cz/neexistuje, zobrazí se správně chybová stránka (podle template 404), zobrazí se správně vyhledávací formulář, který je v layoutu.
Pokud zkusím z této „chybové“ stránky něco vyhledat, nic se neprovede – skončím na stejné stránce. Dumpnu-li výjimku, která přichází do ErrorPresenteru, dostávám odpovídající BadRequestException s chybou „Cannot load presenter ‚Front:Neexistuje‘“ – to by odpovídalo.
Předpokládám, že díky té výjimce nedojde ke pracování formuláře.
Zatím jediné, co mě napadlo, je nastavit v BasePresenteru action přímo a změnit metodu formuláře na GET, ale moc se mi to nelíbí.
Co se s tím dá dělat jiného?