2015-07-09 1 views
8

Скажем, у меня простая контактная форма.Можно ли восстановить значения полей ввода после проверки через пользовательские объекты запроса в 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> 

Вот мой контроллер для обработки этого запроса:

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

Обратите внимание, что я инъекционное ContactRequest объекта, поэтому проверка работает отлично.

Проблема

Как восстановить старые входные значения в контактной форме? Так что пользователю не нужно было бы пополнять все поля.

+0

является его после проверки правильно или после того, как он не –

+0

Вы получите точку :) @GideonAppoh! –

+0

все еще не отвечает на мой вопрос, это когда проверка прошла или когда она потерпела неудачу. –

ответ

12

Если проверка ContactRequest терпит неудачу вы будете перенаправлены на форму с ошибками, а также старым входом.

Так что просто используйте {{old ('field')}} в файле вашего лезвия.

Пример кода:

<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

Отлично! Большое спасибо :) –

+0

Нет проблем. Рад, что это помогло. :) – igs013

5

вы можете использовать метод "старый вход":

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

и

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

Если вы делаете редирект 8back к вашей форме), то вы можете прошить его таким образом:

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

Это еще проще получить старые значения в шаблоне вашего лезвия таким образом:

{{ old('username') }} 

Подробнее о «старом входном» пути можно найти here

Смежные вопросы