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"