Kdyby/Replikator – validace

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

Ahoj všem.

Testuji Kdyby/Replicator. Zprovoznil jsem základ, kdy mi funguje přidávání i odebírání. Teď zkouším ruční validaci a nemužu přijít na to, jak to řešit.

Formulář

	public function createComponentTestForm()
	{
		$form = new \Nette\Application\UI\Form();

		$removeEvent = callback($this, 'MyFormRemoveElementClicked');

		// name, factory, default count
		$users = $form->addDynamic('users', function (\Nette\Forms\Container $user) use ($removeEvent) {

			$user->addText('jmeno');
			$user->addText('ulice');
			$user->addText('mesto');

			$user->addSubmit('remove', 'Odebrat')->addRemoveOnClick();

		}, 1);

		$users->addSubmit('add', 'Přidat')
			->setValidationScope(FALSE)
			->onClick[] = callback($this, 'MyFormAddElementClicked');

		$form->onValidate[] = [$this, "validateTestForm"];
		$form->onSuccess[] = [$this, "proccessTestForm"];

		$form->addSubmit("send", "Odeslat");

		return $form;
	}

U klasických formulářů bez použité Replicatoru používám ve validační metodě tento postup

$values = $form->getValues();
if(kontrola)
{
	$form["prvek"]->addError("Text chyby");
}

Potom mám v šabloně u každého prvku kontrolu, zda má ten prvek nastavený error a podle toho rendruji.

Tento styl bych rád použil i u práce s Replicatorem, ale netuším jak.

Jde to nějak? Přidávání errorů na prvky v Kdyby/Replicator/Containeru nejde.

Díky