- Aplikace
- Databáze
- Šablony
- Formuláře
- Knihovny
- Návody
Formuláře – validace
Validační pravidla je nutné přidat po definici vlastních vstupních
prvků. Validační pravidla definuje vždy v závislosti na jednotlivý prvek
pomocí metody addRule(). Argumenty metody:
- $rule – validační pravidlo
- $arg – validační argument; nepovinný
- $message – chybová hláška; nepovinný
Validační argument využijete jen u některých validačních pravidel, například pokud porovnáváte shodu, délku apod. Háefko má také pro pozitivní validování předkonfigurované chybové hlášky. Ovšem v angličtině.
$form['age']->addRule(Rule::INTEGER, null, 'Věk musí výt zadán jako číslo');
$form['pass']->addRule(Rule::EQUAL, $form['pass2'], 'Hesla se musejí rovnat.');
Při přidávání validačních pravidel můžeme také pomocí
~ vložit jejich negaci:
~Rule::FILLED, ~Rule::EQUAL. Pokud používáte
textové názvy validačních pravidel, pak použijte vykřičník:
'!filled'.
Přidání validačních podmínek
Často potřebujete vstup od uživatele validovat jen za určité podmínky.
K tomu slouží metoda addCondition(). Argumenty metody:
- validační pravidlo
- nepovinný validační argument
Metoda vrací objekt Condition, na která můžete opět volat
metodu addRule a navíc také addRuleOn, která
přidá validační pravidlo na jiný vstupní prvek.
$form['url']->addCondition(Form::FILLED)
->addRule(Form::URL, null, 'Zadejte validní URL adresu.')
$form['email']->addCondition(~Form::FILLED)
->addRuleOn($form['url'], Form::FILLED, null, 'Zadejte email, nebo URL.');
Seznam validačních pravidel
| Validační konstanta | Validuje | Je prázdná hodnota nevalidní? | Argument je |
|---|---|---|---|
| Rule::EQUAL | rovnost | – | objekt ($form['...']) nebo hodnota |
| Rule::FILLED | vyplnění | ano | – |
| Rule::INTEGER | zda je celé číslo | ano | – |
| Rule::FLOAT | zda je desetinné číslo | ano | – |
| Rule::LENGTH | délku vstupu | – | číslo (více níže) |
| Rule::RANGE | číselný rozsah | ano | pole o dvou prvcích |
| Rule::URL | validní url adresu | ano | – |
| Rule::EMAIL | validní e-mail | ano | – |
| Rule::CALLBACK | validuje callbackem | – | callback |
| Rule::REGEXP | rovnost vůči reguláru | – | regulární výraz |
Validace délky
Specifickou záležitostí je validace délky vstupu. V příkladu níže vidíte uzpůsobení pravidla pro potřeby validace.
$form['surname']->addRule(Rule::LENGTH, '>10', 'Jméno musí být delší než 10 znaků');
$form['surname']->addRule(Rule::LENGTH, '<10', 'Jméno musí být kratší než 10 znaků');
$form['surname']->addRule(Rule::LENGTH, '10', 'Jméno musí mít 10 znaků');
