2016-09-01 1 views
-2

Ich möchte das Benutzerbild aktualisieren, es wird jedoch nicht aktualisiert. Ich habe folgenden Controller für die Aktualisierung des Bildes verwendet. Können Sie vorschlagen, was ist der Fehler in der Controller-Funktion?Wie Bild mit Controller in Laravel aktualisieren?

anzeigen Teil:

<div class="form-group"> 
      <label>Image Upload</label> 
      <input type="file" name="image" id="image"><img src="{{ asset('public/images/' . $course->image) }}" width="200px"/></br> 
</div> 

Reglerfunktion:

public function update(Request $request, $id) 
{ 
    $data=Course::findOrFail($id); 


    if ($request->hasFile('image')) 
     { 
      $file = $request->file('image'); 
      $timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); 
      $name = $timestamp. '-' .$file->getClientOriginalName(); 
      $data->image = $name; 
      $file->move(public_path().'/images/', $name);      
     } 
      $data->course_code = $request['course_code']; 
      $data->course_title = $request['course_title']; 
      $data->course_credit = $request['course_credit']; 

      $data->save();    
     return redirect('course'); 
} 
+0

Was genau ist der Fehler Sie bekommen? –

+0

kann ich eigentlich nicht aktualisieren .. – User57

+0

Ich bekomme das ... Was * genau * ist der Fehler? Wie, was sagt der Fehler lol ... –

Antwort

0

Haben Sie Dateiberechtigungen Verzeichnis auf 'Bilder' überprüft? Es muss Schreibberechtigung zum Hochladen von Dateien haben.

+0

Wie überprüfe ich die Erlaubnis? – User57

0

Das Problem ist das,

$data->image = $name; 

Sie setzen den Wert, aber Sie es nicht überall speichern. Sie müssen eine Speicherzeile hinzufügen.

$data->save(); 

Beachten Sie, dass, ruft update() nur speichert, was Sie als Parameter übergeben, speichern nicht, was Sie durch die Mutatoren gesetzt.

+0

Ich habe die Frage mit Ihrer Lösung aktualisiert, aber immer noch den gleichen Fehler. – User57

+0

Fehler? Wenn Sie Fehler haben, zeigen Sie es. –

+0

Ich wollte sagen, dass das Bild nicht aktualisiert wird – User57

0

Siehe Der Fehler/Lösung des Problems ist zuerst muss ich den Update-Wert speichern und dann das neue Bild speichern. Also habe ich einige Änderungen in der Steuerung und löste es ..

Hier ist Controller-Code:

public function update(Request $request, $id) 
{ 
    $data=Course::findOrFail($id); 
    $data->update($request->all()); 

    if ($request->hasFile('image')) 
    { 
      $file = $request->file('image'); 
      $timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); 
      $name = $timestamp. '-' .$file->getClientOriginalName(); 
      $data->image = $name; 
      $file->move(public_path().'/images/', $name); 
      $data->save();     
     } 
    return redirect('course'); 
}