it-swarm.com.de

Zurück zum Formular mit Eingabe umleiten - Laravel 5

Wie leite ich mit den angegebenen POST-Parametern zu meiner Formularseite zurück, wenn meine Formularaktion eine Ausnahme auslöst?

37
infomaniac

Sie können Folgendes verwenden:

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

Wenn Sie Form Request Validation verwenden, führt Laravel Sie mit den Fehlern und der angegebenen Eingabe genau zurück.

Auszug aus \Illuminate\Foundation\Validation\ValidatesRequests :

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

schreiben Sie eine alte Funktion in Ihren Feldwert Zum Beispiel 

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

In Ihrem HTML-Code müssen Sie value = {{ old('') }} verwenden. Ohne Verwendung können Sie den Wert nicht zurückerhalten, da die Sitzung in ihrem Cache gespeichert wird.

Wie bei einer Namensüberprüfung wird dies

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

Jetzt können Sie den Wert nach dem Senden abrufen, wenn ein Fehler bei der Weiterleitung vorliegt.

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

Wie@infomaniacsagt, können Sie den Input class auch direkt verwenden,

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

Hinzufügen: Wenn Sie nur das bestimmte Feld anzeigen, verwenden Sie $request->only().

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

Ich hoffe, es könnte auf jeden Fall funktionieren, danke.

9

In Laravel 5.3 behandele ich Validierungsausnahmen wie folgt. Wenn Sie Laravel Collective verwenden, werden neben den Eingaben automatisch Fehler angezeigt. Wenn Sie Laracasts/Flash verwenden, wird auch der erste Validierungsfehler als Hinweis angezeigt.


Handler.php rendern:

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

    (..)
}

Und die Funktion:

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();
    }
4
Rav

Laravel 5:

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

nur für den Rücken:

return back()->withInput();
3
Luca C.

das wird definitiv funktionieren !!! 

  $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();
   }
0
Aditya Tomar
$request->flash('request',$request);

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

Für mich geht das.