2015-07-09 10 views
8

Załóżmy, że mam prosty formularz kontaktowy.Czy mogę przywrócić wartości pól wejściowych po sprawdzeniu poprawności za pomocą niestandardowych obiektów żądań w Laravel 5.1?

<form action="/message" method="post"> 
    {!! csrf_field() !!} 
    <div class="form-group"> 
     <label>Name: </label> 
     <input type="text" name="name" class="form-control"> 
    </div> 

    <div class="form-group"> 
     <label>Email: </label> 
     <input type="email" name="email" class="form-control"> 
    </div> 

    <div class="form-group"> 
     <label>Your Message: </label> 
     <textarea name="message" class="form-control"></textarea> 
    </div> 

    <div class="form-group"> 
     <button class="btn btn-primary">Submit Message</button> 
    </div> 
</form> 

Oto mój kontroler do obsługi tego żądania:

public function sendMessage(ContactRequest $request) 
{ 
    dd($request->all()); 
} 

Zauważ, że jestem wstrzykiwanie ContactRequest obiektu, więc walidacja działa doskonale.

Problem

Jak mogę przywrócić dawne wartości wejściowe pola formularza? Aby użytkownik nie musiał uzupełniać wszystkich pól.

+0

jest to po walidacji jest poprawna czy nie po to –

+0

dostać punkt :) @GideonAppoh! –

+0

nadal nie odpowiada na moje pytanie, czy jest to, gdy sprawdzanie poprawności przeszło pomyślnie lub gdy się nie powiodło –

Odpowiedz

12

Jeśli walidacja ContactRequest nie zostaniesz przekierowany do formularza z błędami, a także starego wejścia.

Po prostu użyj {{old ('field')}} w twoim pliku ostrza.

Przykład kodu:

<form action="/message" method="post"> 
{!! csrf_field() !!} 
<div class="form-group"> 
    <label>Name: </label> 
    <input type="text" name="name" value="{{ old('name') }}" class="form-control"> 
</div> 

<div class="form-group"> 
    <label>Email: </label> 
    <input type="email" name="email" value="{{ old('email') }}" class="form-control"> 
</div> 

<div class="form-group"> 
    <label>Your Message: </label> 
    <textarea name="message" class="form-control">{{ old('message') }}"</textarea> 
</div> 

<div class="form-group"> 
    <button class="btn btn-primary">Submit Message</button> 
</div> 

+0

Idealny! Dziękuję bardzo :) –

+0

Bez problemu. Cieszę się, że to pomogło. :) – igs013

5

można użyć "Wejście stara" metoda:

$request->flash(); //to put the posted data to session 

i

$username = $request->old('username'); //to get the values you previously stored 

Jeśli robisz 8back przekierowanie do formularza), a następnie można migać w ten sposób:

return redirect('form')->withInput(); 

Jeszcze łatwiej jest uzyskać stare wartości w szablonie ostrzy w następujący sposób:

{{ old('username') }} 

Więcej o „stary” sposób wprowadzania można znaleźć here

Powiązane problemy