2015-10-28 69 views
4

這與this question非常相似。我正在使用Laravel 5並嘗試使用表單將文件(圖像)添加到我的數據庫中。我有一個表單來添加各種數據(標題,描述,圖片)到我的文章類。文章還屬於「belongsToMany」類別和日期(多對多r/ship)。下面的代碼允許我上傳我的數據,但是它增加了三個實例的文章!前兩個實例具有正確的照片路徑/名稱(photo.jpg)。第三個實例將這樣的名稱添加到db:/ tmp/phphJIIY1。它正確地將數據添加到數據透視表。如何將圖像上傳到具有多對多關係的表單中?

我認爲這是該行的「存儲」功能

 $article = Article::create($request->all());  

是造成問題的,但我需要該行或我得到my last question描述的錯誤。

如何訂購/更改此代碼,以便我可以上傳圖片爲我的文章添加類別/日期?我已經安裝了干預\圖像,但尚未使用它。

public function create() 
{ 

    $categories = Category::lists('name', 'id'); 
    $days = Day::lists('dayname', 'id'); 
    return view('articles.create', compact('categories', 'days')); 
} 

public function store(ArticleRequest $request) 
{ 

    $image_name = $request->file('image')->getClientOriginalName(); 
    $request->file('image')->move(base_path().'/public/images', $image_name); 
    $article = ($request->except(['image'])); 
    $article['image'] = $image_name; 
    Article::create($article); 

//這條線以上(如果我註釋掉下面這工作正常,但我需要我的多對多的R /船上工作)工作正常自身

$article = Article::create($request->all()); 

//有添加以下這行以使'categories()'工作。

$categoriesId = $request->input('categoryList'); 
    $article->categories()->attach($categoriesId); 
    $daysId = $request->input('dayList'); 
    $article->days()->attach($daysId); 
    return redirect()->route('articles_path'); 

} 

回答

1

對不起,我誤解了。我是新的&試圖弄清楚事情了。 我有同樣的問題,保存2候選人的記錄,我這樣做,使其工作:

$file = Request::file('resume'); 
    $extension = $file->getClientOriginalExtension(); 
    Storage::disk('local')->put($file->getFilename().'.'.$extension, File::get($file)); 
    $resume = new Resume(); 
    $resume->mime = $file->getClientMimeType(); 
    $resume->filename = $file->getFilename().'.'.$extension; 
    //save resume & put candidate's id as foreign key 
    $candidate=new Candidate(); 
    $data=array_except($data, array('_token','resume')); 
    //attach blank candidate to current user 
    $user->candidate()->save($candidate); 
    $candidate->resume()->save($resume); 

    //find the right instance of candidate we want to update* 
    $candidate=$user->candidate($user); 
    //Now update the candidate with data once it's been attached. 
    $candidate->update($data); 
+0

嗨,謝謝。我仍然不明白這是如何解決問題的?問題是我需要代碼的第二部分(在Article :: create($ article)下面),但我不知道如何將它與上半部分整合。乾杯。 –

+0

您是否嘗試過$ article = Article :: create($ article); 而不是 $ article = Article :: create($ request-> all()); – Mayur

+0

是的,它使它工作!謝謝! –

相關問題