Laravel 8 walidacja danych z formularza

Laravel ma dobrze zaprojektowany system walidacji przesłanych danych.

Aby wykonać walidację wystarczy kawałek kodu przykład poniżej:

$data = $request->validate([
         'url' => ['required', 'unique:sites,url,' . $request->url . ',id,user_id,' .  $request->user()->id, 'max:255', 'min:2', 'url'],
         'name' => ['required', 'max:255', 'min:2']
]);

Krótki opis:
Pole url sprawdza czy jest uzupełnione oraz musi być unikalne w tabeli site dla pola URL oraz unikalne dla danego użytkownika. Czyli w bazie mogą być dwa takie same adresu URL ale każdy należy do innego użytkownika. Adres może mieć maksymalnie 255 znaków oraz minimalnie 2 znaki.

Pole name: wymagane, maksymalnie 255 znaków i minimalnie 255 znaków.

Jeśli chcemy coś „dokleić” do wysłanego formularza na przykład status (wiadomo można zdefiniować to w bazie danych jako domyślna wartość), lecz jeśli chcemy dodać na przykład ID zalogowanego użytkownika.

$data['user_id'] = $request->user()->id;

Następnie zapisujemy nowy rekord w bazie

$site = Site::create($data);

Nie potrzebujemy żadnych ifów ponieważ laravel sam dba o to czy walidacja przebiegła pomyślnie i jeśli nie zostanie wszystko spełnione otrzymamy stosowny komunikat.

Jeśli chcemy dodać własne komunikaty błędów oczywiście możemy zrobić to przez flash message w laravelu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *