Nicht Laravel-Eingang::hasfile() arbeiten an Eingabe-arrays?
Arbeite ich an ein Laravel Projekt mit einer form mit mehreren Datei-Eingänge. Wenn ich das Formular abschicken mit dem ersten Eingang leer und alle anderen Eingaben mit einer Datei, dann hasFile gibt false zurück. Es wird nur true zurückgegeben, wenn die erste Eingabe eine Datei enthält.
if(Input::hasfile('file'))
{
//do something
}
Dies ist das Eingabe-array über den Eingang::file('Datei). Das kleine Bild Eingabe leer ist, aber die große ist nicht. Ich möchte es mal an die ganzen array und wenn dort keine Dateien vorhanden, dann weiter mit dem "etwas tun".
Array
(
[small] =>
[large] => Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image_name.jpg
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 44333
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[pathName:SplFileInfo:private] => /Applications/MAMP/tmp/php/phpHILgX2
[fileName:SplFileInfo:private] => phpHILgX2
)
)
Ist dieses Verhalten zu erwarten? Oder, sollte es bei Betrachtung des gesamten Arrays?
InformationsquelleAutor MAZUMA | 2014-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entnommen aus Quelle:
Scheint es, dass es prüft nur das erste aus der Reihe,
head
gibt das erste Element aus dem array.Willkommen und hoffe, Sie bekommen die Idee 🙂
Yep, macht Sinn. Vielen Dank für den Hinweis auf den Kopf. Ich war mir nicht sicher, was das bedeutete.
InformationsquelleAutor The Alpha
Können Sie überprüfen, indem Sie mithilfe der array-key zum Beispiel wie folgt Aussehen :-
HTML Input type File-Element :
Laravel 5 :
$request->hasFile('your_file_name.'.$key)
Laravel 4.2 :
Input::hasFile('your_file_name.'.$key)
InformationsquelleAutor Ronak Shah
hier ist ein snippet, das kann helfen
Entnommen
http://forumsarchive.laravel.io/viewtopic.php?id=13291
if(is_array($file))
check ist nicht logisch, wie wir bereits beschlossen, Sie in unserem Formular für die Benennung der Eingabefeld, wenn es[]
am Ende wird es immer ein array...InformationsquelleAutor Jesse Szypulski
Da kann ich nicht kommentieren, scheint, dass ich haben werde, zu posten.
Ronak Shah ' s Antwort wirklich markiert werden soll, die richtige hier, und wenn ich herausgefunden habe, warum, sofort hatten Sie mich sagen, "Sonnofa--" nach 30-40 Minuten versuchen herauszufinden... "Durcheinander" aus.
Stellt sich heraus, zu verwenden hasFile() auf eine Eingabe-array verwenden, benötigen Sie dot-notation.
So (mit meinem eigenen Beispiel) anstelle von
muss es
Das ist sicherlich ein eye-opener, gegeben, dass die PHP-und die Punkt-notation nicht richtig zusammen. Eingabe-arrays sind wirklich Sorgenkinder.
InformationsquelleAutor DevBodin