2016-12-16 3 views
1

У меня есть форма, где пользователи могут создавать элементы. Однако, когда форма отправляется и не проходит проверку, старые входы не запоминаются и просто стираются, что разочаровывает пользователя.Laravel 5.3 формы не сохраняют старый ввод, когда проверка не завершена

Я использую форму laravelcollective для этого и моего HTML выглядит следующим образом:

{{ Form::open(['route' => 'my.route', 'class' => 'form-horizontal', 'files' => true]) }} 

<div class="form-group"> 
    {{ Form::label('name', 'Name', ['class' => 'control-label col-md-3']) }} 
    <div class="col-md-9"> 
     {{ Form::text('name', null, ['placeholder' => 'hello world' ,'class' => 'form-control']) }} 
    </div> 
</div> 

<div class="form-group"> 
    {{ Form::label('description', 'Description', ['class' => 'control-label col-md-3']) }} 
    <div class="col-md-9"> 
     {{ Form::textarea('description', null, ['placeholder' => 'hello world', 'class' => 'form-control']) }} 
     <span>some sub-text</span> 
    </div> 
</div> 

<div class="form-group"> 
    {{ Form::label('date', 'Date', ['class' => 'control-label col-md-3']) }} 
    <div class="col-md-9"> 
     {{ Form::text('date', null, ['placeholder' => 'hello world', 'class' => 'form-control']) }} 
    </div> 
</div> 

{{ Form::close() }} 

Даже когда я положил старое значение в так оно не сохраняет старый вход

{{ Form::text('name', old('name') , ['placeholder' => 'hello world' ,'class' => 'form-control']) }} 

Моих метод, который хранит элемент в back-end, выглядит так, когда ItemRequest выполняет валидацию.

public function store(ItemRequest $request, ImageMagick $imageMagick) 
{ 
    $item = new Item; 
    $item->name = $request->name; 
    $item->description = $request->description; 
    $item->date = $request->date; 

    $item->save(); 
    return redirect()->route('some.other.route'); 
} 

Попытка определить, почему старые входы не запоминаются.

+0

Можете ли вы опубликовать «ItemRequest», пожалуйста, – Vuldo

ответ

3

Используй withInput() метод в конце перенаправления методы маршрута, например:

// If validation failed, use this method to make the old inputs available in the view 
return redirect()->route('some.other.route')->withInput(); 

Подробнее о Old Inputs in Laravel

Надеется, что это помогает!

+2

Это не вызывается, когда проверка не выполняется, потому что он использует запросы на форму. – Vuldo

+0

@ Vuldo - Хороший улов, я обновил свой ответ! Спасибо –