Spracovanie formuláru v ErrorPresenter

minimal
Člen | 12
+
0
-

Zdravím,

snažím sa rozbehnúť spracovanie formuláru v error presenteri. Formulár generujem manuálne.

<?php declare(strict_types=1);

namespace App\Modules\FrontendModule\Presenters;

use ...;

final class ErrorPresenter extends Nette\Application\UI\Presenter
{

	/** @inject */
	...

	public function renderDefault(): void
	{
	...
	}

	protected function createComponentSearchForm(): Form
	{
		return $this->searchFormFactory->create(function ($values) {
			$this->redirect('Search:default', ['term' => $values->term]);
		});
	}

	protected function createComponentMenu(): MenuControl
	{
		return $this->menuControlFactory->create();
	}

	protected function createComponentQuickContactForm(): Form
	{
		return $this->quickContactFormFactory->create(function ($values) {
			$this->flashMessage($this->translator->translate('Vašu žiadosť sme úspešne spracovali hneď ako to bude možno sa Vám ozveme na Váš email %s', $values->email), 'info');
			$this->redirect('this');
		});
	}

}

Po vygenerovaní formu sa mi do action automaticky doplní action /error/ takže po odoslaní sa dostanem na www.example.sk/error.

<form action="/error/" method="post" id="frm-searchForm">
						<div class="input-group">
							<input type="text" class="form-control" placeholder="Skúste vyhľadávanie..." value="" minlength="3" required="" name="term" id="frm-searchForm-term">
							<div class="input-group-append">
								<button class="btn btn-custom" type="submit" name="_submit">Hľadať</button>
							</div>
						</div>
					<input type="hidden" name="_do" value="searchForm-submit"><!--[if IE]><input type=IEbug disabled style="display:none"><![endif]-->
</form>

Nie je mi jasné ako toto správanie upraviť.

Ďakujem

Michal Kumžák
Člen | 106
+
0
-

Když ten formulář generuješ manuálně, proč to neudělat takto:

{form searchForm}
<div class="input-group">
	<input type="text" class="form-control" placeholder="Skúste vyhľadávanie..." value="" minlength="3" required="" name="term" id="frm-searchForm-term">
	<div class="input-group-append">
		<button class="btn btn-custom" type="submit" name="_submit">Hľadať</button>
	</div>
</div>
<input type="hidden" name="_do" value="searchForm-submit">
<!--[if IE]><input type=IEbug disabled style="display:none"><![endif]-->
{/form}

Edit: Myslím, že to _do pak nemusíš psát, že se tam doplní samo.

Editoval Michal Kumžák (24. 8. 2021 19:10)