✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Przewodnik dla początkujących dotyczący walidacji Laravela

45

Kiedy budujemy stronę internetową w Laravel, musimy wiedzieć o walidacji Laravel. Laravel zapewnia inny sposób sprawdzania poprawności przychodzących danych. W tym artykule przyjrzymy się podstawom walidacji Laravela.

Budując aplikację, powinniśmy bezbłędnie stosować walidacje po stronie klienta i serwera. Dzięki temu możemy chronić naszą aplikację przed niepotrzebnymi danymi. W efekcie zaoszczędzi nam to dużo czasu na usuwanie danych o marnotrawstwie z aplikacji.

Powiedziawszy to, przyjrzyjmy się, jak zastosować walidację Laravel w swojej aplikacji.

W naszym samouczku bierzemy przykładowy formularz, który ma 2 pola tytuł i opis. Zastosujemy walidację, a jeśli walidacja się nie powiedzie, zostanie ona wyświetlona w naszym widoku.

Walidacja Laravela

Aby rozpocząć, musimy dołączyć poniższe oświadczenie do naszego pliku kontrolera.

Umieść to oświadczenie przed uruchomieniem kontrolera, jak poniżej.

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use Validator;
 
class PostController extends Controller
{
   .....
}

Zanim napiszesz właściwy kod walidacyjny, przejdźmy do pliku widoku. Tworzymy prosty formularz z 2 polami tytułu i opisu.

<form action="{{ url('post') }}" method="post">
  <div class="form-group">
      <label for="exampleInputTitle">Post Title</label>
      <input type="text" name="title" id="exampleInputTitle" />
  </div>
  <div class="form-group">
      <label for="exampleInputBody">Post Body</label>
      <textarea class="form-control" name="body" id="exampleInputBody" rows="10"></textarea>
  </div>
  {{ csrf_field() }}
  <button type="submit" class="btn btn-default">Submit</button>
</form>

Gdy prześlemy formularz, wywoła on store()metodę naszego kontrolera. W twoim przypadku może twoja metoda jest inna. Tak więc w naszej metodzie napiszemy kod walidacji w następujący sposób.

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'title' => 'required|max:255',
        'body' => 'required',
    ]);
 
    if ($validator->fails()) {
        return redirect('post/create')
                    ->withErrors($validator)
                    ->withInput();
    }
 
    //safe to proceed form
}

Można zauważyć, że przekazaliśmy dwa klucze „tytuł" ​​i „ciało”. To są nazwy naszych elementów formularza. Tutaj Laravel sprawdza, czy oba pola nie są puste, a pola tytułu nie przekraczają 255 znaków.

Jeśli którakolwiek z walidacji nie powiedzie się, użytkownik przekieruje na stronę, którą przekazaliśmy do metody redirect().

Wyświetl komunikaty o błędach w widoku

Zastosowaliśmy walidację po stronie serwera. Przyjrzyjmy się teraz, jak wyświetlać komunikaty o błędach.

Powiedzmy, że w naszym przypadku walidacja nie powiodła się i teraz musimy wyświetlić komunikaty o błędach w naszym formularzu. Istnieją 2 sposoby wyświetlania błędów w widokach Laravel. Po pierwsze, możemy wyświetlić wszystkie komunikaty o błędach razem na górze formularza. Drugim sposobem jest wyświetlenie go obok każdego pola, w którym występuje błąd.

Aby wyświetlić komunikat o błędzie u góry formularza, dodaj poniższy kod nad tagiem formularza.

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

Ten kod wyświetli komunikat o błędzie, jak pokazano na poniższym zrzucie ekranu:

W drugim sposobie, aby wydrukować komunikat o błędzie po każdym polu. W takim przypadku nasz kod wygląda następująco:

<div class="form-group">
   <label for="exampleInputTitle">Post Title</label>
   <input type="text" name="title" id="exampleInputTitle" />
   @if ($errors->has('title'))
       <span class="error">
           {{ $errors->first('title') }}
       </span>
   @endif
 
</div>
<div class="form-group">
   <label for="exampleInputBody">Post Body</label>
   <textarea class="form-control" name="body" id="exampleInputBody" rows="10"></textarea>
   @if ($errors->has('body'))
       <span class="error">
           {{ $errors->first('body') }}
       </span>
   @endif
</div>

Zauważ, że używamy @if ($errors->has('title'))do sprawdzania, czy pole „tytuł” ​​ma błąd walidacji. Jeśli to pole zawiera błąd, wypisujemy go za pomocą {{ $errors->first('title') }}. Tę samą logikę zastosowaliśmy dla pola „ciało”. Spójrz na poniższy zrzut ekranu tego typu.

Mamy nadzieję, że rozumiesz, jak zastosować walidację Laravel w swojej aplikacji. Podziel się swoimi przemyśleniami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów