Kdyby/Replikator – validace
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kejlicz
- Člen | 201
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