Una guida per principianti per la convalida di Laravel
Quando costruiamo un sito Web in Laravel, dobbiamo conoscere la convalida di Laravel. Laravel offre un modo diverso per convalidare i dati in entrata. In questo articolo, studiamo alcune nozioni di base sulle Convalide di Laravel.
Durante la creazione di un’applicazione, dovremmo applicare le convalide lato client e lato server senza errori. In questo modo possiamo proteggere la nostra applicazione da dati non necessari. Di conseguenza, ci farà risparmiare molto tempo cancellando i dati di scarto dall’applicazione.
Detto questo, diamo un’occhiata a come applicare la convalida Laravel nella tua applicazione.
Per il nostro tutorial, prendiamo un modulo di esempio che ha 2 campi titolo e descrizione. Applicheremo la convalida e se la convalida fallisce verrà visualizzato nella nostra vista.
Convalida Laravelvel
Per iniziare, dobbiamo includere la seguente dichiarazione nel nostro file del controller.
Inserisci questa dichiarazione prima dell’inizio del controller come di seguito.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Validator;
class PostController extends Controller
{
.....
}
Prima di scrivere il codice di validazione effettivo, veniamo al file di visualizzazione. Creiamo un semplice form con 2 campi titolo e descrizione.
<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>
Quando inviamo un modulo, verrà chiamato il store()
metodo del nostro controller. Nel tuo caso forse il tuo metodo è diverso. Quindi, nel nostro metodo, scriveremo il codice di convalida come segue.
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
}
Puoi notare che abbiamo passato due chiavi ‘title’ e ‘body’. Questi sono i nomi dei nostri elementi del modulo. Qui, Laravel controlla se entrambi i campi non sono vuoti e i campi del titolo non superano i 255 caratteri.
Se una qualsiasi delle validazioni fallisce, l’utente reindirizzerà alla pagina che abbiamo passato a un metodo redirect().
Visualizza messaggi di errore in una vista
Abbiamo applicato la convalida lato server. Ora diamo un’occhiata a come visualizzare i messaggi di errore.
Diciamo che la convalida fallisce nel nostro caso e ora dobbiamo visualizzare i messaggi di errore sul nostro modulo. Esistono 2 modi per visualizzare gli errori nelle viste Laravel. In un primo modo, possiamo visualizzare tutti i messaggi di errore insieme nella parte superiore di un modulo. Con il secondo modo, è possibile visualizzarlo accanto a ciascun campo che presenta un errore.
Per visualizzare il messaggio di errore nella parte superiore del modulo, aggiungi il codice sottostante sopra il tag del modulo.
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Questo codice visualizzerà il messaggio di errore come mostrato nello screenshot qui sotto:
Nel secondo modo, per stampare il messaggio di errore dopo ogni campo. In tal caso, il nostro codice è il seguente:
<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>
Nota che stiamo usando @if ($errors->has('title'))
per verificare se il campo "titolo" ha un errore di convalida. Se questo campo contiene errori, lo stampiamo utilizzando {{ $errors->first('title') }}
. La stessa logica che abbiamo applicato per il campo ‘corpo’. Dai un’occhiata allo screenshot qui sotto di questo tipo.
Ci auguriamo che tu capisca come applicare la convalida Laravel nella tua applicazione. Per favore condividi i tuoi pensieri nella sezione commenti qui sotto.
articoli Correlati
- Invio di e-mail tramite il server SMTP di Gmail in Laravel
- Come installare e utilizzare CKEditor in Laravel