Funkce onValidate – warning při nevyplněném povinném inputu

Tomáš Vodička
Člen | 28
+
+2
-

Ahoj,

pokud mám ve formuláři povinné pole, přidám si vlastní handler do onValidate funkce a dle dokumentace si v handleru vytáhnu hodnoty


$form->addText('name', 'Název')
	->setRequired();

$form->onValidate[] = [$this, 'formValidate'];

...

public function formValidate(Form $form): void
{
	$values = $form->getValues();
}

tak v nové verzi nette/forms při odeslání formuláře s nevyplněným povinným polem vyskočí user warning

Nette\Forms\Container::getValues() invoked but the form is not valid.

Jak tedy správně získávat hodnoty z inputů v onValidate? Z každého jednotlivě pomocí $form['name']->getValue()?

Pavel Kravčík
Člen | 1195
+
+2
-

@DavidGrudl – jak je to prosím myšlené? Všiml jsem si, že s tím dobře pak nefunguje například třeba ani Ublaboo\Datagrid hromadné akce.

Klidně bych tam poslal PR, ale přemýšlím, co by měla být správná cesta, všude doplnit podmínku na form isSuccess()? I když chci udělat třeba jen složitější validaci všech hodnot z multiplicatoru?

David Grudl
Nette Core | 8218
+
+1
-