Edit
Lang

Validace – Nette\Utils\Validators

Nette\Utils\Validators je statická třída s užitečnými funkcemi pro validaci dat.

Všechny příklady předpokládají vytvořený alias:

use Nette\Utils\Validators;

Pravidla

Definice pravidel se zapisuje podobně jako se používají filtry v latte. Jednotlivá pravidla se oddělují svislítkem (|) a případné parametry se zapisují za dvojtečku.

Typ
bool, boolean booleanovská hodnota
int, integer celé číslo
float desetinné číslo
number celé nebo desetinné číslo
numeric číslo včetně textové reprezentace
numericint celé číslo včetně textové reprezentace
string string
unicode UTF-8 string
array pole
list neasociativní pole
object objekt
resource zdroj
scalar skalární hodnota (int, float, bool nebo string)
callable callback
null NULL
Hodnota
email E-mail
url URL
none „prázdná hodnota“
Speciální
pattern
alpha
digit
lower
upper
space
xdigit

is($value, $expected)

Ověří, zda vstup odpovídá pravidlům.

Validators::is('Nette Framework', 'string:15'); // string o délce 15 znaků
Validators::is('Nette Framework', 'string:8..'); // string o délce minimálně 8 znaků
Validators::is('Nette Framework', 'string:..32'); // string o délce maximálně 32 znaků
Validators::is('Nette Framework', 'string:8..32'); // string o délce minimálně 8 a maximálně 32 znaků
Validators::is(23, 'int:0..10'); // celé číslo od 0 do 10
Validators::is(1, 'int|float'); // celé nebo desetinné číslo (lze zapsat i jako 'number')

assert($value, $expected, $label = ‚variable‘)

Ověří, zda vstup odpovídá pravidlům. Pokud ne, vyhodí výjimku.

Validators::assert('Nette Framework', 'string:15'); // ok
Validators::assert('Lorem ipsum dolor sit', 'string:78'); // exception
// The variable expects to be string:78, string 'Lorem ipsum dolor sit' given.

assertField($arr, $field, $expected = NULL, $label = „item ‚%‘ in array“)

Ověří, zda prvek v poli odpovídá pravidlům. Pokud ne, vyhodí výjimku.

$arr = ['nette' => 'framework'];

Validators::assertField($arr, 'nette', 'string:15'); // ok
Validators::assertField($arr, 'foo', 'string:15'); // exception
// Missing item 'foo' in array.
Validators::assertField($arr, 'nette', 'int'); // exception
// The item 'nette' in array expects to be int, string 'framework' given.

Validátory

isNumericInt($value)

Ověří, zda je vstup celé číslo.

Validators::isNumericInt(23); // true
Validators::isNumericInt(1.78); // false
Validators::isNumericInt('42'); // true
Validators::isNumericInt('3.14'); // false
Validators::isNumericInt('nette'); // false

isNumeric($value)

Ověří, zda je vstup číslo.

Validators::isNumeric(23); // true
Validators::isNumeric(1.78); // true
Validators::isNumeric('42'); // true
Validators::isNumeric('3.14'); // true
Validators::isNumeric('nette'); // false

isCallable($value)

Ověří, zda je vstup platný callback.

Validators::isCallable('Foo::bar'); // true
Validators::isCallable([$foo, 'bar']); // true
Validators::isCallable(['Foo::bar']); // true
Validators::isCallable('Lorem ipsum dolor sit...'); // false
Validators::isCallable(23); // false
Validators::isCallable(FALSE); // false

isUnicode($value)

Ověří, zda je vstup platný UTF-8 string.

Validators::isUnicode('nette'); // true
Validators::isUnicode(''); // true
Validators::isUnicode(1); // false

isNone($value)

Ověří, zda je vstup „prázdný“.

Validators::isNone(0); // true
Validators::isNone(''); // true
Validators::isNone(FALSE); // true
Validators::isNone(NULL); // true
Validators::isNone('nette'); // false

isList($value)

Ověří, zda je vstup neasociativní pole.

Validators::isList(['foo', 'bar']); // true
Validators::isList(['foo' => 'Bar']); // false

isInRange($value, array $range)

Ověří, zda je vstup v daném rozsahu.

Validators::isInRange(5, [0, 5]); // true
Validators::isInRange(23, [NULL, 5]); // false
Validators::isInRange(23, [5]); // true
Validators::isInRange(1, [5]); // false

isEmail($value)

Ověří, zda je vstup platná e-mailová adresa.

Validators::isEmail('example@nette.org'); // true
Validators::isEmail('nette'); // false

isUrl($value)

Ověří, zda je vstup platná URL adresa.

Validators::isUrl('https://nette.org'); // true
Validators::isUrl('nette'); // false