2017-10-03 3 views
0

ich einen Beitrag mit Titel, Texte & Bild. Aber ich kann den Bildpfad nicht in der Datenbank speichern. Hier ist mein Code.Laravel - Daten nicht auf Datenbank gespeichert, Bild-Upload fehlgeschlagen

public function save(Request $request, Post $post) 
{  

    $this->validate(request(), 
    [ 
     'title' => 'required', 
     'image' => 'image|mimes:jpg,png,jpeg' 
    ]); 

    if($request->hasFile('image')) 
    { 
     $file = $request->file('image'); 
     $fileNameExt = $request->file('image')->getClientOriginalName(); 
     $fileName = pathinfo($fileNameExt, PATHINFO_FILENAME); 
     $fileExt = $request->file('image')->getClientOriginalExtension(); 
     $fileNameToStore = $fileName.'_'.time().'.'.$fileExt; 
     Image::make($file)->resize(600, 600)->save(public_path('media/' . $fileNameToStore)); 
     $post->image = $fileNameToStore; 

    auth()->user()->publish(
     new Post(request(['title', 'text', 'image'])) 
    ); 
} 
    return redirect ('/'); 
} 

Aber es speichert keine Bildpfad zu image Spalte der Datenbank. Stattdessen tmp Daten wie C:\xampp\tmp\phpC549.tmp gespeichert. Was ist hier falsch?

+0

soll sich ändern Ich sehe nicht (Entschuldigung wenn es gibt) wo Sie das Modell speichern –

+0

Sorry nicht klar. Ich habe eine Methode, um die Post 'public function veröffentlichen (Beitrag $ post) { $ this-> Beiträge() zu veröffentlichen -> speichern ($ post); } ' – universal

+0

Was passiert, wenn Sie diese Zeile' post- $ ändern> image = $ fileNameToStore; 'von diesem' $ post-> image = public_path ('media /' $ fileNameToStore.); '? –

Antwort

0

Ich glaube, Sie brauchen die

auth()->user()->publish(
     new Post(request(['title', 'text', 'image'])) 
    ); 

zu

auth()->user()->publish(
     new Post([ 
'title'=>$request->title, 
'text'=>$request->text, 
]) 
    ); 

seit Bild val bereits speichern Code in hasfile

wenn Bedingung

Sample Image Pfad

public function addBlogCategoryPost(BlogCategoryRequest $request) { 



     $destinationPath = 'iamge path'; 
     $data = [ 
      'category_name' => $request->category_name, 
      'category_description' => $request->category_description, 
      'seo_url' => $request->seo_url, 
      'meta_title' => $request->meta_title, 
      'meta_description' => $request->meta_description, 
      'meta_keywords' => $request->meta_keywords, 
      'meta_author' => $request->meta_author, 
     ]; 

     if ($request->hasFile('category_image')) { 

      $file = $request->file('category_image'); 
      //move iamge to folder 
      $fileName = str_random(30) . '.' . $file->clientExtension(); 
      $file->move($destinationPath, $fileName); 
      $data['category_image'] = $fileName; 
     } 

      $addTag = BlogCategory::create($data); 



     if ($addTag) { 
      return $addTag; 
     } 
    } 
+0

Umm. Aber warum speichert der Bildpfad nicht, während Titel und Text gespeichert werden? – universal

+0

Gibt es andere Methoden, um den Pfad zu speichern, ohne $ request-Variable anzugeben? – universal

+0

Kann ich löse es nicht auf 'Auth() -> Benutzer() -> veröffentlichen ( neue Post (Anfrage ([ 'title', 'text', 'Bild'])) );' ohne '$ Angabe Anfrage "für jedes Unternehmen? Ich entfernte, wenn Bedingung, aber nicht gelöst. Von wo Temp Daten für 'Bild' Spalte gespeichert sind? – universal

Verwandte Themen