Ich bin irgendwie bemüht, die Antwort auf meine Frage zu finden, und mein Test erweist sich nicht als nützlich. Vielleicht hätte jemand hier das gleiche Problem, dem ich gegenüberstehe.Laravel 5.4: Dynamische Validierungsregel
Ich habe Eingänge mit folgenden Art von strukturierten Namen projects-0-1
, project-0-2
, project-1-0
und so weiter ... Dies sind Dateieingänge so dass die Leute ein Dokument/ein Bild hochladen.
Also im Grunde habe ich versucht, eine Bestätigungsnachricht zu erhalten, die (idealerweise) so etwas wie das sein würde:
$validator->getMessageBag()->add('project-*-*', 'File is empty!');
ODER
$validator->getMessageBag()->add('project-*', 'File is empty!');
ich von Dingen versucht ein paar bereits und nichts scheint zu funktionieren.
Der Grund, warum ich eine benutzerdefinierte Nachricht hinzufügen kann, ist, dass die Datei einfach nicht validiert wird, wenn sie für das Objekt $request
leer ist. Also muss ich zuerst überprüfen, ob die $request->hasFile
und falls nicht, ich möchte die Fehlermeldung hinzufügen.
Dinge zu beachten:
Eingänge dynamisch in das Formular eingefügt werden kann, so dass ich weiß nicht, die genaue Anzahl der Dateieingaben ich vorher bestätigen müssen.
auch wenn dies den Code und die Validierung nicht beeinflussen sollte, ist es bemerkenswert, dass alles durch Ajax passiert, während ich das Formular auf einer anderen Website einbette. Deshalb habe ich Endpunkte etc ... erstellt.
Irgendwelche Hinweise?
Haben Sie versucht, diese '' Datei. *. Mimen '=>' Nur PDF, JPEG, PNG sind erlaubt. ', 'Https://Stackoverflow.com/a/45188623/5148479 – Hari
Ja, ich habe alles versucht Jazz und es hilft nicht. Ich habe kein Problem mit der Validierung selbst, aber mit übereinstimmenden Fehlermeldungen zu Dateieingaben, wenn diese nicht Teil der Anfrage sind, da sie leer bleiben, wenn das Formular abgeschickt wird. – daneczech
Was im Grunde braucht, ist ich in meinem Regeln Array einen Platzhalter in dem Eingang Namen zu setzen: '$ globalRules = [ ... 'project_documents-0-0' => 'erforderlich | Datei', ... ]; ' ich die letzten Regeln wünsche eine beliebige Zahl zwischen 0-9 nach den Strichen entsprechen zu können .. Also dachte ich, so etwas tun würde: ' ‚project_documents - * - *‘ => 'erforderlich | Datei', 'aber in der Tat nicht .. – daneczech