2017-09-12 63 views
0

我有這兩個非常簡單的模型更新一一對一關係的兩個表。我可以使用單個表格,但我認爲將這些數據集分開是有意義的。Laravel,如何從一個單一的形式

在一個表單中,我想同時編輯Episode及其內容,但經過多次嘗試,我還沒有想出如何。

這是我在做什麼:

public function update(Request $request, $id) 
{ 
    $rules = [ 
     'number' => 'required', 
    ]; 
    $this->validate($request, $rules); 
    $episode = Episode::with('content')->findOrFail($id); 

    $episode->published_at = $request->get('published_at'); 
    $episode->number  = $request->get('number'); 
    $episode->content->title  = $request->get('title'); 

    $episode->update(); 

    return redirect('admin/episodes'); 
} 

這樣,沒有在episodes_content表更改。

在另一種嘗試,我嘗試這樣做:

$episode->published_at = $request->get('published_at'); 
    $episode->number  = $request->get('number'); 
    $episode->active  = $request->get('active'); 

    $episodeContent  = new EpisodeContent; 
    $episodeContent->title = $request->get('title'); 

    $episode->content()->save($episodeContent); 

這樣,一個新的episodes_content行創建的,而我想更新現有的一個。

回答

0

試試這個我想這會工作

$episode = Episode::with('content',function($query) use($id){ 
       $query->where('episode_id',$id); 
      })->where('id',$id); 

在這裏,我假設你的字段名稱標識在父表和episode_id在子表。讓我知道如果它不起作用。