vlastni pravidla pro formulare

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
lvq
Člen | 47
+
0
-

zdravim,
pokousim se vytvorit vlastni pravidlo pro policko ve formulari, ale jaksi se me to nedari.
Prohledal jsem vsechno mozne, narazil jsem jen na tento kod v ruznych variacich:

<?php
// uživatelský validátor: testuje, zda je hodnota dělitelná argumentem
function myValidator($item, $arg)
{
        return $item->getValue() % $arg === 0;
}

$form->addText('number', 'Číslo:')
        ->addRule('myValidator', 'Číslo musí být dělitelné %d.', 8);
?>

Jenze kdyz mam presenter a v nem vyse zminenou fci a formular tvorim ve fci createComponentRegformular(), tak ladenka pise: Unknown operation ‚myValidator‘ for control ‚email‘. Zkousel jsem menit zapis, ale nic nevedlo k cili.
Predem diky za Vase typy.
Pouzivam PHP 5.2 a nette 0.96

bojovyletoun
Člen | 667
+
0
-

zřejmě máš moc starou verzi nette:
viz – zřejmě to funguje v „nejnovější verze“

v tvé verzi nevím… zkusil bych toto:
nepsat 'myvalidator', ale function($elm,$arg){return !($elm->value%$arg);} — jenže teď vidím, že používáš PHP 5.2, tam nefungují anonymní funkce

takže toto bych zkusil callback('validator')- nette 0.9.6 neznám… tipuji

PS: doporučuji upgrade

Editoval bojovyletoun (22. 2. 2011 22:31)