Ich arbeite in Laravel 5.4 und ich habe eine etwas spezifische Validierungsregeln benötigen, aber ich denke, dass dies leicht machbar sein sollte, ohne die Klasse zu erweitern. Nur nicht sicher, wie man das macht.Laravel Validierungsregeln Wenn Wert in einem anderen Feld Array
Was ich tun möchte, ist die 'music_instrument'
Formularfeld obligatorisch, wenn program
Array enthält 'Music'
.
fand ich diesen Thread How to set require if value is chosen in another multiple choice field in validation of laravel? aber es ist keine Lösung (weil es nie an erster Stelle gelöst bekam) und der Grund, warum dies nicht den Fall funktioniert, weil der eingereichten Array-Indizes nicht konstant ist (nicht Kontrollkästchen aktiviert aren ‚t in der Indizierung der Vorlage Ergebnis betrachtet ...)
Mein Fall wie folgt aussieht:
<form action="" method="post">
<fieldset>
<input name="program[]" value="Anthropology" type="checkbox">Anthropology
<input name="program[]" value="Biology" type="checkbox">Biology
<input name="program[]" value="Chemistry" type="checkbox">Chemistry
<input name="program[]" value="Music" type="checkbox">Music
<input name="program[]" value="Philosophy" type="checkbox">Philosophy
<input name="program[]" value="Zombies" type="checkbox">Zombies
<input name="music_instrument" type="text" value"">
<button type="submit">Submit</button>
</fieldset>
</form>
Wenn ich einige der Optionen aus der Liste der Kontrollkästchen kann ich möglicherweise dieses Ergebnis habe in meinem $request
Werte
[program] => Array
(
[0] => Anthropology
[1] => Biology
[2] => Music
[3] => Philosophy
)
[music_instrument] => 'Guitar'
an Regeln hier Validierung der Suche: https://laravel.com/docs/5.4/validation#available-validation-rules Ich denke, so etwas wie seine Arbeit sollte aber ich bin buchstäblich nichts bekommen:
$validator = Validator::make($request->all(),[
'program' => 'required',
'music_instrument' => 'required_if:program,in:Music'
]);
Ich hatte gehofft, dies auch funktionieren würde, aber kein Glück:
'music_instrument' => 'required_if:program,in_array:Music',
Gedanken? Vorschläge?
Vielen Dank!
habe ich versucht, den Stern, aber es wird ignoriert. Ich konnte es mit required_if: program.34, Music, arbeiten lassen, aber dafür muss ich meine Liste indexieren und den Überblick über 34 behalten, was offensichtlich keine gute Idee ist ... Ich werde diesen Ansatz auch versuchen. Vielen Dank. Ich hatte gehofft Laravel in_array würde funktionieren, aber kein Glück – GRowing
Ich werde Ihre zweite Lösung akzeptieren, dass das ist die Art, wie ich ging :) Danke! Wenn jemand anderes eine Out-of-the-Box-Konfiguration vorschlägt, würde ich es trotzdem gerne sehen ...hehe – GRowing