Как перенаправить обратно в форму с помощью ввода – Laravel 5

Как перенаправить обратно на мою страницу формы с заданными параметрами POST , если мое действие формы вызывает исключение?

Solutions Collecting From Web of "Как перенаправить обратно в форму с помощью ввода – Laravel 5"

Вы можете использовать следующее:

 return Redirect::back()->withInput(Input::all()); 

Если вы используете проверку запроса формы , именно так Laravel перенаправит вас с ошибками и данным вводом.

Выдержка из \Illuminate\Foundation\Validation\ValidatesRequests :

 return redirect()->to($this->getRedirectUrl()) ->withInput($request->input()) ->withErrors($errors, $this->errorBag()); 

напишите старую функцию на ваши значения полей, например

 <input type="text" name="username" value="{{ old('username') }}"> 

Я обрабатываю исключения проверки в Laravel 5.3, как это. Если вы используете Laravel Collective, он автоматически отображает ошибки рядом с входами, и если вы используете laracasts / flash, он также покажет первую ошибку проверки в качестве уведомления.


Handler.php render:

 public function render($request, Exception $e) { if ($e instanceof \Illuminate\Validation\ValidationException) { return $this->handleValidationException($request, $e); } (..) } 

И функция:

 protected function handleValidationException($request, $e) { $errors = @$e->validator->errors()->toArray(); $message = null; if (count($errors)) { $firstKey = array_keys($errors)[0]; $message = @$e->validator->errors()->get($firstKey)[0]; if (strlen($message) == 0) { $message = "An error has occurred when trying to register"; } } if ($message == null) { $message = "An unknown error has occured"; } \Flash::error($message); return \Illuminate\Support\Facades\Redirect::back()->withErrors($e->validator)->withInput(); } 

В вашем HTML вы должны использовать value = {{ old('') }} . Не используя его, вы не сможете вернуть значение, потому что какой сеанс будет храниться в кеше.

Как и для проверки имени, это будет –

 <input type="text" name="name" value="{{ old('name') }}" /> 

Теперь вы можете получить значение после его отправки, если есть ошибка с перенаправлением.

 return redirect()->back()->withInput(); 

Как говорит @infomaniac , вы также можете напрямую использовать Input class ,

 return Redirect::back()->withInput(Input::all()); 

Добавить: если вы показываете только конкретное поле, используйте $request->only()

 return redirect()->back()->withInput($request->only('name')); 

Надеюсь, это может сработать во всех случаях, спасибо.

Laravel 5:

 return redirect(...)->withInput(); 

только для спины:

 return back()->withInput();