2017-09-06 3 views
1

Also der Titel sagt alles, andere Regeln wie "Pantomimen" funktionieren, aber ich kann Formular ohne Datei-Upload senden. Natürlich kann ich "erforderlich" Attr in HTML verwenden, aber ich will nicht.Laravel File Validierungsregel "Required" funktioniert nicht

Controller

$rules = [ 
    'img.*' => 'required|mimes:png,jpeg,jpg', 
    ]; 

$customMessages = [ 
    'img.required' => 'Yo, what should I call you?', 
    ]; 

$this->validate($request, $rules, $customMessages); 

View

<div class="form-group{{ $errors->has('img.'.$i) ? ' has-error' : '' }}"> 

    <label for="img">File input</label> 
    <input type="file" class="form-control-file" id="img" value="{{old('img.'.$i)}}" name="img[]"> 
    <small class="text-danger">{{ $errors->first('img.'.$i) }}</small> 

</div> 

ich anderen Eingänge haben, aber mit type="text" und ihre "required" Regel funktioniert gut. Was ist los mit type="file"? Kann nicht die Antwort finden ...

+0

Welche Version von Laravel ist das? – apokryfos

+0

Es ist Laravel 5.5 – qqmydarling

Antwort

0

So, das war das Problem in $iter in meinem div für die Eingabe type="file" Es sollte wie folgt aussehen:

<div class="form-group{{ $errors->has('img') ? ' has-error' : '' }}"> 
     <label for="img">File input</label> 
     <input type="file" class="form-control-file" id="img" value="{{old('img')}}" name="img[]"> 
     <small class="text-danger">{{ $errors->first('img') }}</small> 
</div> 

Aber nachdem ich meine Variable Pantomimen Arbeit gestoppt löschen:)

$rules = [ 
     'img' => 'required', 
     'img.*' => 'image|mimes:png,jpeg,jpg' 
    ]; 

oder

$rules = [ 
     'img.*' => 'required|image|mimes:png,jpeg,jpg' 
    ]; 
0

In Ihrem Tag Eröffnungsformular Sie diese haben hinzufügen:

enctype = "multipart/form-data"

und entfernen name = "img []" Verwendung name = "img"

+0

Nein, meine Art ist in Ordnung. Und ich kann das Array nicht entfernen, weil meine Eingaben dynamisch sind, also speichere ich viele Bilder in der Datenbank. Andere Eingaben mit [] sind funktioniert ok – qqmydarling

+0

'img. *' => 'Erforderlich | image | mimes: jpeg, png, jpg' – Abhishek

+0

nichts, Regeln für Pantomime und Bild sind funktioniert, aber ich kann noch ein Formular mit einem leeren einreichen Dateieingabe – qqmydarling

0

Sie sollten dies versuchen:

<input type="file" class="form-control-file" id="img" value="{{old('img.'.$i)}}" name="img[]" multiple> 


$rules = [ 
     'img' => 'required', 
     'img.*' => 'image|mimes:png,jpeg,jpg' 
    ]; 
+0

Immer noch nicht funktioniert :( – qqmydarling

+0

@qqmydarling: Bitte folgen Sie dies Verbindung (https: // stackoverflow.com/questions/39727463/how-to-do-Validierung-für-mehrere-Bilder-Upload-in-Laravel-5-3) –

+0

Ich beobachtete viele Links und fand keine Antwort, es gibt keine Lösung für mich. Btw, ich brauche keine multiple attr, da ich viele Eingaben mit dem gleichen "name" attr habe und die Dateien werden von einem Submit gespeichert. Mein Formular sieht so aus: Name - Beschreibung - Datei – qqmydarling

0

Controller

$rules = [ 
    'img' => 'required', 
    'img.*' => 'image|mimes:png,jpeg,jpg', 
]; 

$customMessages = [ 
    'img.required' => 'Yo, what should I call you?', 
]; 

$this->validate($request, $rules, $customMessages); 

form

<form action="...." method="post" enctype="multipart/form-data"> 
. 
. 
. 
. 

    <div class="form-group{{ $errors->has('img.'.$i) ? ' has-error' : '' }}"> 

     <label for="img">File input</label> 
     <input type="file" class="form-control-file" id="img" value="{{old('img.'.$i)}}" name="img[]"> 
     <small class="text-danger">{{ $errors->first('img.'.$i) }}</small> 

    </div> 
+0

Wie wird es helfen, wenn ich Validierung außerhalb der Schleife machen werde? Andere Eingaben funktionieren ok, und erforderliche Regel funktioniert ok auf type = "text" Und ich kann meine Dateieingabe nicht außerhalb der Schleife bewegen, weil ich ein js-Skript habe, das meine Eingaben klont, damit sie dynamisch sind – qqmydarling

Verwandte Themen