/ Gists / Vlastní validační pravidla
On gists

Vlastní validační pravidla

Nette Nette-Forms

demo1.php Raw #

<?php
class UserFormRules
{
    const USERNAME = 'UserFormRules::validateUsername';
    const EMAIL_DOMAIN = 'UserFormRules::validateEmailDomain';

    public static function validateUsername(IControl $control)
    {
        // validace uživatelského jména
    }

    public static function validateEmailDomain(IControl $control, $domain)
    {
        // validace, zda se jedné o e-mail z domény $domain
    }
}

$form->addText('username', /* label, velikost... */)
    ->addRule(UserFormRules::USERNAME, /* validační zpráva */);
$form->addText('email', /* label, velikost... */)
    ->addRule(UserFormRules::EMAIL_DOMAIN, /* validační zpráva */, 'example.com');

demo2.php Raw #

<?php

//definice validační funkce. Může to být i klasická funkce, ne jen lambda.
$cb = function ($field, $args) {
    return $field->value == $args[0]->value + $args[1]->value;
};

$a = $form->addText('num1', 'N1');
$b = $form->addText('num2', 'N2');

$form->addText('sum', 'Sum')->addRule($cb, 'Sum!', [$a, $b]);