InvalidArgumentException pri validaci selectboxu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
ahoj mam formularik:
public function pridatForm($opt=array())
{
$parent = $opt['parent'];
$form = new MyForm;
$form->addGroup();
$form->addSelect('svetadil', 'Svetadil:')
->setPrompt(' -- ')
->setRequired('Zvolte prosím světadíl.');
svetadily pridavam v tovarnicce:
/* FACTORIES */
protected function createComponentPridatForm()
{
$fData = array('parent'=>$this);
$form = $this->DestinaceFormFactory->pridatForm($fData);
$r = $this->SvetadilyRepository->seznam();
$form['svetadil']->setItems($r->fetchpairs('id', 'nazev_'.\App\Glb::$JAZYK));
return $form;
}
a kdyz nezvolim zadny svetadil tak bych chtel videt hlasku
->setRequired('Zvolte prosím světadíl.');
ale kdyz dam validovani formulare
$form->setDefaults($post['form']);
$form->validate();
tak se mi zobrazi
Nette\InvalidArgumentException
Value '' is out of allowed range ['Amerika', 'Afrika', 'Evropa', 'Asie', 'Australie'] in field 'svetadil'.
ano value je '' timpadem si myslim ze by se mela vyvolat podminka a zobrazit se ‚Zvolte prosím světadíl.‘
- David Matějka
- Moderator | 6445
verze nette?
co je $post
?
proc volas validaci rucne?
pokud ma byt hodnota nevybrana, tak to musi byt NULL
, ne prazdny
retezec
Editoval matej21 (12. 4. 2014 12:54)
- matopeto
- Člen | 395
Mam rovnaky problem po prechode na Nette 2.1.2 (z 2.0)
mam:
<?php
$container->addSelect('page', 'Page', $pages)
->setOption('id', $toggleNamePreffix . "-toggle-page")
->setPrompt('Select page')
->addConditionOn($container['type'], Form::EQUAL, 'page')
->addRule(Form::FILLED, 'Select page.');
?>
Po tom ako to odoslem nevyplnene:
Value '' is out of allowed range ['Page1', 'Page2'] in field 'page'.
Podla mna je to chyba a berie promt ako hodnotu, a pritom by ho mal ignorovat.
Dokonca to nejde ani pri jednoduchom:
<?php
$container->addSelect('page', 'Page', $pages)
->setOption('id', $toggleNamePreffix . "-toggle-page")
->setPrompt('Select page');
?>
Editoval matopeto (17. 4. 2014 13:26)