Jak mogę przekierować z powrotem do strony formularza z podanymi parametrami POST
, jeśli moja akcja formularza zgłasza wyjątek?Jak przekierować z powrotem do formularza za pomocą danych wejściowych - Laravel 5
Odpowiedz
można użyć następujących:
return Redirect::back()->withInput(Input::all());
Jeśli używasz Form Request Validation, to jest dokładnie jak laravel przekieruje Cię z powrotem z błędami i danego wejścia.
Fragment \Illuminate\Foundation\Validation\ValidatesRequests
:
return redirect()->to($this->getRedirectUrl()) ->withInput($request->input()) ->withErrors($errors, $this->errorBag());
Możesz także użyć 'back()'. http://laravel.com/docs/5.1/responses#redirects – lesssugar
Nie, to nie obsługuje twoich parametrów wejściowych. – infomaniac
Jasne, mówię to: 'return redirect() -> back() -> withInput();' It's tylko poręczne makro. – lesssugar
pisać starą funkcję na swoich polach cenią np
<input type="text" name="username" value="{{ old('username') }}">
Ten działa dla Laravel 5.1 – TodStoychev
Dzięki! Używam Laravel 5.2 i to działa również dla mnie. Oprócz funkcji 'old()' w naszym szablonie blade, musimy również użyć 'withInput()' w naszym kontrolerze, aby to działało. Podobnie jak => 'if ($ validate-> failed()) return redirect (" somepage ") -> withErrors ($ validate) -> withInput();' –
Każdy pomysł jak to zrobić dla 'select ' –
obsłużyć wyjątki walidacji w laravel 5.3 jak ten. Jeśli użyjesz Laravel Collective, automatycznie wyświetli się błędy obok danych wejściowych, a jeśli użyjesz laracast/flash, pokażesz jako pierwszy komunikat o walidacji.
Handler.php
render:
public function render($request, Exception $e)
{
if ($e instanceof \Illuminate\Validation\ValidationException) {
return $this->handleValidationException($request, $e);
}
(..)
}
a funkcja:
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();
}
laravel 5:
return redirect(...)->withInput();
do tyłu tylko:
return back()->withInput();
' return back() -> withInput(); ' –
Nice! Przekazałem' $ request-> all() 'do ta metoda, ale dobrze jest wiedzieć, że to nie jest konieczne –
W kodzie HTML należy użyć value = {{ old('') }}
. Bez użycia tego nie można odzyskać wartości, ponieważ sesja będzie przechowywana w pamięci podręcznej.
Podobnie jak w przypadku walidacji nazwa, to być-
<input type="text" name="name" value="{{ old('name') }}" />
Teraz można uzyskać wartość po złożeniu go, jeśli nie ma błędów z przekierowaniem.
return redirect()->back()->withInput();
Jak @infomaniac mówi, można również użyć Input class
bezpośrednio
return Redirect::back()->withInput(Input::all());
Dodaj: Jeśli tylko pokazać danej dziedzinie, a następnie użyć $request->only()
return redirect()->back()->withInput($request->only('name'));
Mam nadzieję, że to może działać we wszystkich przypadkach, dziękuję.
dziękuję. –
- 1. Automatyczne zapisywanie danych wejściowych formularza za pomocą jQuery + ASP.NET MVC
- 2. Sprawdzanie poprawności formularza HTML 5 dla danych wejściowych datetime-local
- 3. Ustaw atrybut wartości rzeczywistej danych wejściowych za pomocą jQuery
- 4. Jak usunąć naciśnięcie klawisza z danych wejściowych za pomocą jquery?
- 5. Jak przekierować do folderu publicznego na laravel
- 6. Jak przekierować stdout, stderr z powrotem do/dev/tty
- 7. jak uzyskać dostęp do danych formularza za pomocą kolby?
- 8. Jak wyświetlać komunikaty o błędach w funkcji przekierowania za pomocą sprawdzania poprawności formularza za pomocą laravel 5
- 9. Dostosuj liczbę wierszy do formularza :: Textarea Laravel 5
- 10. Pobieranie lub wysyłanie danych z formularza za pomocą knockout.js
- 11. Uzyskaj hasło z danych wejściowych za pomocą pliku node.js
- 12. PHP Jak zapisać dane z tablicy do MySQL za pomocą laravel 5
- 13. Jak wysłać odpowiedź z powrotem do klienta za pomocą socket.io?
- 14. Wielojęzyczne zarządzanie bazą danych za pomocą Laravel
- 15. MVC 5 Widok brzytwy niewiążący bool do danych wejściowych
- 16. Jak powiązać zdarzenie dla wszystkich danych wejściowych formularza?
- 17. Laravel przekazanie danych za pomocą ajax do kontrolera
- 18. Jak przekierować stronę za pomocą JavaScript?
- 19. Potwierdź usunięcie za pomocą formularza w formacie laravel?
- 20. Jak wewnętrznie przekierować wywołanie laravel (bez przekierowania)?
- 21. Prośby Laravel 5 Formularz - sprawdzanie powiązanych danych
- 22. Jak przekierować rozszerzenie html za pomocą htaccess?
- 23. problemy z połączeniem z bazą danych w laravel 5
- 24. odczyt pliku tekstowego z powrotem do słownika za pomocą json.loads
- 25. Wprowadzanie danych wejściowych za pomocą BufferedReader w Javie
- 26. Dynamiczne wprowadzanie dynamicznych danych wejściowych za pomocą danych json, nunjucks i pętli for
- 27. Jak przekierować dane wyjściowe do pliku za pomocą CreateProcess?
- 28. Laravel 5: Jak sprawdzić dane wejściowe datetime z 4 pól wejściowych?
- 29. Jak przekierować z urządzenia przechwytującego Axios za pomocą Routera V4?
- 30. Laravel 5 Jak przejść z trybu produkcji
Wiesz, że musiałem odpowiedzieć na twoje pytanie tylko dlatego, że poprosiłeś i odpowiedziałeś na nie w tym samym czasie. – whoacowboy
Pomyślałem, że byłoby to pomocne dla innych ludzi.Nie mogłem znaleźć rozwiązania, więc przekopałem się przez źródło, aby zobaczyć, jak jest ono obsługiwane za pomocą Form Validation automatycznie. – infomaniac
Zawsze to doceniam. – whoacowboy