Nové middleware a validace v Laravel 5.4
Laravel 5.4 nabízí dva nové middleware ConvertEmptyStringsToNull
a TrimStrings
, které ještě více ulehčují práci s kontrolou hodnot z requestu. S jejich použitím je ale potřeba počítat i s validací formulářových polí, které se musí správně upravit.
Pokud bychom ale přidali middleware TrimStrings do App/Kernel.php:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\TrimStrings::class,
Jako výsledek dostaneme:
dd(request('email'));
// 'demo@example.org'
Například pokud bychom měli při registraci nového uživatele možnost zadat i svůj věk, který ale není povinný:
<input type="text" name="age" value="">
Pokud bychom pole nechali nevyplněné, dostali bychom prázdný string:
dd(request('age'));
// ''
S middlewarem ConvertEmptyStringsToNull budeme ale mít tento výsledek:
dd(request('age'));
// null
Je to z toho důvodu, že věk je null a abychom prošli validací, je nutné k pravidlu přidat podmínku nullable
:
"age" => "nullable|integer"