Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

В вашем 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'));

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

Ответ 4

Я обрабатываю исключения проверки в 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();
    }

Ответ 5

Laravel 5:

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

только для возврата:

return back()->withInput();

Ответ 6

это будет работать определенно !!!

  $v = Validator::make($request->all(),[
  'name' => ['Required','alpha']
  ]);

   if($v->passes()){
     $ab = $request->name;
     print_r($ab);
   }
   else{
     //this will return the errors & to check put "dd($errors);" in your blade(view)
     return back()->withErrors($v)->withInput();
   }

Ответ 7

$request->flash('request',$request);

<input type="text" class="form-control" name="name" value="{{ old('name') }}">

Меня устраивает.

Ответ 8

Вы можете попробовать это:

return redirect()->back()->withInput(Input::all())->with('message', 'Something 
went wrong!');