Jak řešit potvrzení na základě vyplněných údajů

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

Mám formulář. Uživatel ho vyplní, jedno z polí je e-mail. Po odeslání zkontroluji, zda se k e-mailu nevážou nějaké související záznamy. Pokud ano, potřebuji záznamy zobrazit, aby uživatel druhým odesláním téhož formuláře potvrdil výsledek.

Pokud se k emailu nevážou záznamy (tj. i pokud se rozhodne e-mail dodatečně změnit), formulář se zpracuje rovnou.

Jak nejlépe na to? Nyní to řeším takto:

<?php
class myPresenter {
	...

	function processMyForm(Form $form) {
		...
		if (!$this->session->getSection('myForm')->verifyEmail && $this->getRecords(values['email'])) {
			$this->flashMessage('Existují záznamy', 'warning');
			$this->redirect('this', array('verifyEmail' => $values['email']));
		} else {
			unset($this->session->getSection('myForm')->verifyEmail); // Toto je možná zbytečné
			...
		}
	}

	function actionAddForm($id) {
		...
		if (($email = $this->getParameter('verifyEmail'))) {
			$this->session->getSection('myForm')->verifyEmail = TRUE;
			$this->template->records = $this->getRecords($email);
		}
		...
	}

	function renderAddForm($id) {
		if ($this->getParameter('verifyEmail')) {
			unset($this->session->getSection('myForm')->verifyEmail);
		}
	}
}
?>

Nepřipadá mi to úplně elegantní. Napadá někoho lepší způsob?

Jen dodávám, že uživatel samozřejmě z formuláře může kamkoliv odejít, otevřít tentýž formulář s jiným záznamem, …