ich eine Checkbox in einer Ansicht zu erstellen:ungeprüft Checkbox mit "Input :: alt()"
Form::checkbox('test', 'true', Input::old('test', true));
Nachdem die Box Abhaken Absenden des Formulars und wird umgeleitet zurück:
return Redirect::back()->withInput()->withErrors($validation);
Das Kontrollkästchen wird immer noch überprüft - vermutlich, weil 'test'
in "Input::old"
nicht existiert, so dass es auf den Standardwert zurückgesetzt wird.
Haben Sie Vorschläge, wie Sie das am besten erreichen?
Edit:
ich mit einem etwas hacky Weise habe kommen die Ergebnisse immer ich will:
$isChecked = true; // The default state
// Check if the form has been returned "withInput"
if(Input::old())
{
$isChecked = Input::old('test', false); // If the field has old data available use that, otherwise it is unchecked
}
echo Form::checkbox('test', 'true', $isChecked);
ich dies für die Wiederverwendung in eine Funktion schreiben werde, aber es scheint,
: zu klären - ein wenig schmerzhaft so keine Kommentare/Vorschläge großeEdit 2 Sorry, wenn nicht klar wäre
- Formular geladen mit Checkbox aktiviert
- ich das Kontrollkästchen deaktivieren und senden Sie das Formular
- Die Form dies nicht bestätigen ich in das Formular
- Die Checkbox selbst nachgeprüft zurückgekehrt bin - ich würde erwarten, dass es nicht markiert sein, da pro Benutzer übermittelten Daten
ich nehme an, dies geschieht, weil, wenn ein Kontrollkästchen nicht markiert ist, wird das Element nicht in den Post-Daten enthält
Vielen Dank für die Antwort, aber haben Sie diese getestet? Wenn ich das Kontrollkästchen deaktivieren und senden, wird es überprüft, wenn das Formular neu geladen wird - ich beieve, weil Input :: alt ('test') nicht existiert –
@GuyIncognito Dies funktioniert, weil Laravel Formularerstellung überprüft die Sitzung und wenn dort sind irgendwelche alten Formulardaten. 'if (isset ($ this-> Sitzung) &&! $ this-> oldInputIsEmpty() && is_null ($ this-> alt ($ name))) return false;' FormBuilder.php Zeile 639 in Laravel Version 4.2.x- dev –