Ověřování formátů data v Laravelu
Ověřování formátů dat je nezbytné při přijímání uživatelských vstupů, které závisí na přesném plánování, výpočtech nebo ukládání. Laravel poskytuje jasná a výkonná validační pravidla pro data. Vývojáři systému Laravel se často potýkají s nepochopením, které pravidlo použít, jak přísná by validace měla být a jak vynutit konkrétní formáty.
Základní pravidla pro ověřování data
Na stránkách date Pravidlo
Na stránkách date pravidlo kontroluje, zda lze hodnotu analyzovat na platné datum pomocí funkce strtotime jazyka PHP nebo Carbon. Nevynucuje konkrétní formát.
$request->validate([ 'start_date' => 'required|date',]);
Tím se zajistí, že zadané datum je platné, ale neomezí se jeho formátování.
Na stránkách date_format Pravidlo
Na stránkách date_format kontroluje, zda hodnota přesně odpovídá zadanému formátu.
$request->validate([ 'start_date' => 'required|date_format:Y-m-d',]);
Hodnota musí přesně odpovídat formátu.
Rozdíl mezi date A date_format
Na stránkách date kontroluje, zda je hodnota skutečným datem. Na adrese date_format pravidlo kontroluje, zda formát odpovídá. Tato pravidla slouží k různým účelům.
Ověřování dat pomocí date_format
Příklad jednotného formátu
$request->validate([ 'event_date' => 'required|date_format:d/m/Y',]);
Přijímá pouze hodnoty jako 25/01/2025.
Více přijímaných formátů
Použijte syntaxi oddělenou čárkami pro přiřazení jednoho z daných formátů.
$request->validate([ 'event_date' => 'required|date_format:d/m/Y,m/d/Y',]);
Laravel vyžaduje, aby hodnota odpovídala některému z formátů v souboru date_format pravidlo. V tomto případě přijímá obě 25/01/2025 a 01/25/2025.
Běžné vzory formátů
Y - čtyřmístný rok m - dvoumístný měsíc d - dvoumístný den H - hodiny i - minuty s - sekundy
Ověřování času a data
Ověření kombinovaného data a času
$request->validate([ 'scheduled_at' => 'required|date_format:Y-m-d H:i',]);
Ověřování úplných časových razítek
$request->validate([ 'timestamp' => 'required|date_format:Y-m-d H:i:s',]);
Částečné datumové vstupy S required_with
$request->validate([ 'date' => 'required_with:time|date_format:Y-m-d', 'time' => 'required_with:date|date_format:H:i',]);
Ověřování formátů data ISO 8601
$request->validate([ 'published_at' => 'required|date_format:Y-m-d\TH:i:sP',]);
Závěr
Použijte buď date zkontrolovat, zda je hodnota skutečným datem, nebo date_format prosazovat přísné formátování, ne obojí.