2016-08-24 58 views
0

海蘭所有,編輯圖像的ploymorphic關係

我需要更新文章的圖片,它的所有罰款更新後,但我的問題是如何與我的多態性有關更新這個帖子的形象。

我有一個表與imageable_id imageable_type路徑的圖像。

在我的崗位控制器更新功能,我有

public function update($id) 
{ 
    $inputs = Input::all(); 

    $rules =array(
     'name'=>'required|min:5', 
     'description'=>'required|min:10', 
    ); 

    $validation = Validator::make($inputs,$rules); 

    if($validation->fails()){ 
     return Redirect::to('posts/'.Input::get('id').'/edit')->withInput() 
      ->withErrors($validation) 
      ->with('alert_error','Veuillez corriger les érreurs SVP'); 
    } 

    if(Input::hasFile('mediafile')){ 
     $file = Input::file('mediafile'); 
     $name = date('Ymd') . '-' . $file->getClientOriginalName(); 
     $file = $file->move('img/uploads/', $name); 

     $path = $file->getRealPath(); 

     //take the path only at the img not totally 
     $pos = strpos($path,'/img/'); 
     if ($pos !== false) { 
      $path = substr($path, $pos + 1); 
     } 
     $input['file'] = $path; 

     $post=Post::find(Input::get('id')); 
     $post->name  = e(Input::get('name')); 
     $post->description = e(Input::get('description')); 
     $post->category_id = e(Input::get('categories')); 
     $post->tag_id  = e(Input::get('tag')); 
     $post->rating  = e(Input::get('rating')); 
     $post->content  = Input::get('content'); 
     $post->is_online = e(Input::get('online')); 
     $post->images->path = e(Input::get('mediafile')); 

     $post->save(); 

    } 

} 

我的模型後

public function images(){ 

return $this->morphMany('Image','imageable'); 
} 

所以我想更新我的形象的唯一路徑在我的表圖片時,我提出我的形式展現郵政的新照片。

感謝對幫助

回答

0

的morphMany將返回圖像的集合,所以當你運行$後>圖像 - >路徑你設置在收集路徑屬性不上的圖像模式。如果某個帖子只是爲了創建一個圖片,請將其更改爲morphOne,或者您必須標識要從該收藏夾更新的圖片模型。

+0

我不確定要了解如何使用morphone進行更新。最好的做法是隻爲編輯圖像的後期建立一個新的功能在我的後期模型morphone?謝謝 – nicolassiuol

+0

morphOne和morphMany之間的區別是基於您的模型之間的關係。在你的Post模型中,你指定一個帖子有很多圖片,但是在你的Post控件中,你正在使用post-> image,就好像一個帖子有一個圖片。如果它是一對一的關係,只需將morphMany更新爲morphOne,或者如果它意味着一對多的關係,post->圖像將返回一個集合。如果是這樣的話,你將不得不找出你想要更新的圖像。希望有幫助(https://laravel.com/docs/5.1/eloquent-relationships#polymorphic-relations) – Requisit