2016-04-22 7 views
1

Ich versuche, eine Bilder mit der Methode verschieben die temporären Dateien hochladen, und zeigen Sie es auf meiner Indexseite nur mit dem Pfad.Image Hochladen von Laravel 5.2: Versuch, die Eigenschaft von Nicht-Objekt zu erhalten

Hier ist das Problem:

ErrorException in ProductController.php line 69: Trying to get property of non-object 

In meinem Controller, der die Zeile enthalten, die Fehler:

public function store(Request $request) 
{ 
    $product=Request::all(); 
    Product::create($product); 


    $imageName = $product->id_prod . '.' . 
     $request->file('images')->getClientOriginalExtension(); 

    $request->file('images')->move(
     base_path() . '/public/images/catalog/', $imageName 
    ); 

    return redirect('product'); 
} 

Und die Datenbank hier ist, wurde die Datei auf Temp-Ordner hochgeladen, aber die Datei war nicht bewegt. Ich benutze Laravel 5.2, es war das erste Mal, dass ich Dateien hochgeladen habe. Und kann mir jemand erklären, warum dies ein Fehler sein könnte.

Entschuldigung für meine schlechten Grammatiken.

Images

Antwort

1

Sie können wie folgt versuchen:

public function store(Request $request) 
{ 
    $product = $request->all(); 

    $picture = ''; 

    if ($request->hasFile('images')) { 
     $file = $request->file('images'); 
     $filename = $file->getClientOriginalName(); 
     $extension = $file->getClientOriginalExtension(); 
     $picture = $product['id_prod'] . '.' . $extension; 
     $destinationPath = base_path() . '/public/images/catalog/'; 
     $request->file('images')->move($destinationPath, $picture); 
    } 

    if (!empty($product['images'])) { 
     $product['images'] = $picture; 
    } else { 
     unset($product['images']); 
    } 


    Product::create($product); 

    return redirect('/product'); 
} 
+0

Danke, ich denke, es Arbeit sein annimmt, aber ein anderer Fehler: 'Aufruf der undefinierten Methode Illuminate \ Support \ Fassaden \ anfordern :: all() ' –

+0

' verwenden Illuminate \ Http \ Request; 'Haben Sie so etwas in Ihrem Controller gesehen? –

+0

Ich habe hinzugefügt, aber 'Illuminate \ Http \ Request als Request kann nicht verwendet werden, weil der Name bereits verwendet wird ' –

Verwandte Themen