Nastavení výchozích hodnot formuláře ve validátoru
- totrna
- Člen | 3
Dobrý den,
snažím se s validováním formuláře nastavit výchozí hodnoty formu,
ale nevím jak na to.
Děkuji za radu.
protected function createComponentMyForm(): Form
{
$form = new Form;
$form->addText('name', 'Název')
->setRequired();
$form->addSubmit('send', 'Uložit');
$form->onValidate[] = [$this, 'validateMyForm'];
$form->onSuccess[] = [$this, 'saveMyForm'];
return $form;
}
public function validateMyForm(Form $form): void
{
$values = $form->getValues();
// Validation ...
$form['name']->addError("Název \"".$values->name."\" již existuje");
$form->setDefaults(['name'=>'DEFAULT']);
}
- totrna
- Člen | 3
To platí pro neodeslaný form. Já potřebuji form zvalidovat. Pokud není form validní, tak mi vrátí form se vším s čím jsem ho odesílal. Já bych ale potřeboval měnit data ve formu na základě výsledků validace. Třeba jen vyprázdnit textové políčko.
Editoval totrna (20. 7. 2020 9:10)
- David Matějka
- Moderator | 6445
pouzij setValue na konkretnim prvku, resp. setValues na containeru (a formu)