2016-12-12 5 views
1

ich das auf meinem Controller verwenden:Invalid argument für foreach geliefert() Laravel-5.3

public function store(Request $request) 
{ 
    $images = $request->file('image'); 
    $file_count = count($images); 
    $uploadcount = 0; 
    $daily = new Report(); 

    foreach($images as $image) {  
    $daily = new Report();  
    $destination ='img/report'; 
    $filename = $image->getClientOriginalName(); 
    storage::put('img/report/'.$filename,file_get_contents($request->file('image')->getRealPath()));   
    $daily->image = $filename; 
    $uploadcount ++;   
    } 
    $daily->author = $request->author; 
    $daily->desc = $request->desc; 
    // $daily->created_at = Carbon::now(); 
    $daily->save(); 
if($uploadcount == $file_count){ 
return redirect('/daily'); 
}else{ 
return redirect('/daily/create'); 
} 
} 

und der Browser sagen: Call auf eine Elementfunktion getRealPath() auf Array i mehrere Bild speichern möchten Datenbank.

das ist mein blade.php

<form action="/daily/create" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="_token" value="{{{ csrf_token() }}}"> 
    {{-- date --}} 
    {!! Form::text('date', old('date', Carbon\Carbon::today()->format('d-m-Y')),['class'=>'form-control date-picker']) !!} 
    {{-- penulis --}} 
    <label for="author">Author :</label> 
    <input name="author" type="text" value="{{ Auth::user()->name }}"> 
    {{-- textarea --}} 
    <label for="desc">Description</label> 
    <textarea name="desc" id="" cols="30" rows="10"></textarea> 
    {{-- input image --}} 
    <div class="file-field input-field"> 
    <div class="btn"> 
    <span>File</span> 
    <input type="file" name="image[]" multiple> 
    </div> 
    <div class="file-path-wrapper"> 
    <input class="file-path validate" type="text" placeholder="Upload one or more files"> 
    </div> 
</div> 
<center> 
<input type="submit" class="btn"> 
</center> 

    </form> 

sollte ich das '[]' auf der 'Blade' Bild-Eingabe löschen? und 'Array' auf dem Controller? wie mache Ich das ?

+0

Sie sind eine Reihe von 'image' aus der Sicht vorbei? –

+0

$ images ist kein Array, Sie können dd ($ images) tun und sehen, welcher Datentyp es ist – michaeltintiuc

+0

@SaumyaRastogi ich weiß nicht, ich lese gerade diesen Beitrag http://stackoverflow.com/questions/31468120/how-to -upload-multiple-images-und-store-ihr-name-in-datenbank-mit-laravel-5-1 und folgen sie dann fehler :( –

Antwort

0

Ihren folgenden Code in Ihrem Controller ändern:

storage::put('img/report/'.$filename,file_get_contents($request->file('image')->getRealPath())); 

zu

storage::put('img/report/'.$filename,file_get_contents($image->getRealPath())); 
+0

yesssss es funktioniert big thanks ... aber nur der letzte name von image store zur datenbank alle Bilder im Ordner gespeichert, wie habe ich alle Bilder aufgerufen, wenn nur 1 Name des Bildes in der Datenbank gespeichert ist? –

+0

glücklich zu helfen .. –

+0

aber nur der Nachname des Bildes speichern in der Datenbank alle Bilder im Ordner gespeichert, wie ich alle Bilder genannt, wenn nur 1 Name des Bildes in der Datenbank –

Verwandte Themen