Chyba v Nette Form addSelect s kombinací addRule RANGE
- djdaca
- Člen | 21
poslední NETTE verze pro PHP 5.2 s prefixama
Chtěl jsem selecty ještě opatřit případnou kontrolou kdyby se je někdo pokoušel obejít tím že by do HTML dal například input.
public function createComponentTest() {
$form = new NAppForm;
$form->addSelect('time_from', '', array(8,9,10,11,12,13,14,15))->setPrompt('od')
->addRule(NAppForm::RANGE, 'Chybně zadaný čas od', array(8,15));
$form->addSelect('time_to', '', array(8,9,10,11,12,13,14,15))->setPrompt('do')
->addRule(NAppForm::RANGE, 'Chybně zadaný čas do', array(8,15));
return $form;
}
v LATTE potom
{form test}{/form}
Na produkční serveru se mi z nějakého důvodu oběví Server Error a
v logu toto:
*
[2011–09–22 09–57–54] PHP Fatal error: Uncaught exception
InvalidArgumentException with message ‚Unknown operation ':range‘ for
control ‚time_from‘.' in
/var/home/www/zadostopujcku.cz/b3ta/application/libs/Nette/Forms/Rules.php:233 @
http://b3ta.zadostopujcku.cz/zadost-o-pujcku @@ exception
2011–09–22 09–57–54 db3220ab04eec4a2446a80cc71e7bf95.html
*
Editoval djdaca (22. 9. 2011 11:44)
- bojovyletoun
- Člen | 667
to validateRange má Textbase(text,textarea). a selectbox nedědí od textbase.
ale textbase::validateRange bere jako 1.parametr Textbase (!), takže
jednoduše by tam nešlo vložit-
za další extensionmethod mi nefunguje u statických metod
takže zbývá si tento kód vykopírovat a použít vlastní callback jako pravidlo
- bojovyletoun
- Člen | 667
pilec nekoukal jsem na to detailně, jen obecně
jak se to chová jinak?
ještě jedna věc: range(3,5)=array(3,4,5)