En nybörjarguide för validering av Laravel
När vi bygger en webbplats i Laravel måste vi veta om validering av Laravel. Laravel erbjuder ett annat sätt att validera dina inkommande data. I den här artikeln studerar vi några grunder om Laravel Validations.
När vi bygger en applikation bör vi använda valideringar på klientsidan och på serversidan utan att misslyckas. Genom att göra det kan vi skydda vår applikation från onödiga data. Som ett resultat sparar det oss mycket tid att rensa avfallsdata från applikationen.
Med detta sagt, låt oss ta en titt på hur du tillämpar Laravel-validering i din ansökan.
För vår handledning tar vi ett exempelformulär som har två fält titel och beskrivning. Vi kommer att tillämpa validering och om valideringen misslyckas kommer den att visas enligt vår åsikt.
Laravel-validering
För att komma igång måste vi inkludera nedanstående uttalande i vår kontrollerfil.
Placera detta uttalande före start av din controller som nedan.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Validator;
class PostController extends Controller
{
.....
}
Innan du skriver den faktiska valideringskoden kan vi komma till visningsfilen Vi skapar en enkel form med två fält titel och beskrivning.
<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>
När vi skickar in ett formulär kommer det att ringa till store()
metoden för vår controller. I ditt fall kanske din metod är annorlunda. Så i vår metod skriver vi valideringskoden enligt följande.
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
}
Du kan märka att vi passerade två nycklar "titel" och "kropp". Detta är namnet på våra formelement. Här kontrollerar Laravel om båda fälten inte är tomma och titelfält inte överstiger 255 tecken.
Om någon av valideringen misslyckas kommer användaren att omdirigera till sidan som vi skickade till en omdirigeringsmetod().
Visa felmeddelanden i en vy
Vi har tillämpat validering på serversidan. Låt oss nu titta på hur du visar felmeddelanden.
Låt oss säga att validering misslyckas i vårt fall och nu måste vi visa felmeddelanden i vårt formulär. Det finns två sätt att visa felen i Laravel-vyer. På ett första sätt kan vi visa alla felmeddelanden tillsammans högst upp i ett formulär. För det andra kan man visa det bredvid varje fält som har ett fel.
För att visa felmeddelandet högst upp i formuläret, lägg till nedanstående kod ovanför formulärtaggen.
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Den här koden visar felmeddelandet som visas på skärmdumpen nedan:
För det andra att skriva ut felmeddelandet efter varje fält. I så fall är vår kod följande:
<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>
Observera att vi använder för @if ($errors->has('title'))
att kontrollera om ‘titel’ -fältet har ett valideringsfel. Om det här felet har fel skriver vi ut det med {{ $errors->first('title') }}
. Samma logik som vi använde för fältet "kropp". Ta en titt på nedanstående skärmdump av denna typ.
Vi hoppas att du förstår hur du använder Laravel-validering i din ansökan. Dela dina tankar i kommentarsektionen nedan.