✅ 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

56

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