Laravel poskytuje pohodlný validační mechanismus, nicméně většina z nás si vystačí s jednoduchými pravidly jako jsou required, email nebo date. Avšak existují i méně známé a velmi zajímavé pravidla, které můžeme vyžít.

Prvně si připomeňme jak validace funguje. Můžeme vytvořit pole s validačními pravidly s jedním nebo více pravidel pro každý element. Například takto:

[
  'title' => 'required|unique:posts|max:255',
  'body' => 'required',
];

Poté toto pole můžeme využívat v separátní Form Request třídě nebo uvnitř našeho kontroleru zavoláním metody $this->validate().

Nyní se podívejme na pravidla, která jsou méně používaná, ale mohou být velmi užitečná.

accepted

Element, který chceme validovat, musí mít hodnotu `yes`, `on`, `1` nebo `true` . To se může hodit pro validaci typu "Souhlasím s podmínkami".

confirmed

Nejčastěji se používá pro zopakování hesla jako potvrzení. Element se pak musí přesně shodovat s elementem, který se jmenuje `[element]_confirmation`.

dimensions:ratio

Soubor, který chceme validovat, musí být obrázek obsahující poměr, specifikován parametrem pravidla. Například poměr 3:2 pro obrázky s velikostí 600x400 nebo 300x200: ```php 'avatar' => 'dimensions:ratio=3/2' ```

timezone

Element, který chceme validovat, musí být validní časová zóna identifikována podle PHP funkce timezone_identifiers_list, například Europe/Czechia nebo Africa/Abidjan.

filled / present / required

Nakonec existují tři pravidla, která mohou na první pohled vypadat velmi podobně, avšak mírně se liší.
  • required - hodnota elementu musí existovat v odeslaných datech a nesmí být prázdná
  • present - hodnota elementu musí existovat v odeslaných datech, ale může být prázdná
  • filled - hodnota elementu nesmí být prázdná pokud existuje v odeslaných datech

Kompletní seznam pravidel najdete v oficiální dokumentaci. Samozřejmě pokud potřebujete další pravidla, můžete si přidat vlastní. Taylor Otwell, zakladatel Laravelu, nedávno oznámil, že v nové verzi Laravel 5.5 půjdou vlastní pravidla vytvářet ještě jednodušeji.