Vlastni validace pro formulář nefunguje

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

Ahoj,

potřebuji vlastní validace, jel jsem podle tohoto návodu: „:https://doc.nette.org/…s/validation“ .

Mám tedy třídu s kódem:

namespace Nette\Forms\Controls;
use Nette\Forms\IControl;

class UserFormRules {
    const MAX_VALUE = 'UserFormRules::validateMaxValue';

    public static function validateMaxValue(IControl $control, $maxValue)
    {
        return true;   // zatím jen pro testování
    }
}

V továrně na formulář v presenteru:

$form->addText('maxPayment', 'Maximální platba')
     ->addRule(\Nette\Forms\Controls\UserFormRules::MAX_VALUE, 'Maximální platba' , 500 );

Vždy mi to hodí chybu: Unknown operation ‚UserFormRules::validateMaxValue‘ for control ‚maxPayment‘.

Procházel jsem podobná témata zde na fóru, ale nikde jsem se nedostal k řešení, co by se hodilo na můj problém.
Chci to řešit přes třídu, abych potom mohl validovat Javascriptem (jak je popsáno v odkazovaném článku).

David Matějka
Moderator | 6445
+
0
-
  1. mas tam namespace, ale…
  2. nikdy nic nepis do ciziho namespace
davez
Člen | 60
+
0
-

Namespace jsme změnil na své. Já jsem už potom zkoušel různé pokusy, tak jsem zkoušel i měnit namespace. Předpokládám, že z tvého bodu 1. by mi mělo něco dojít? :-)

David Matějka
Moderator | 6445
+
+2
-
const MAX_VALUE = 'Muj\Namespace\UserFormRules::validateMaxValue';