2017-05-26 17 views
0

私は2つのテーブルが最初にサブジェクトテーブルsubjects_doctorsテーブルです。ここでの関係は1人に多くです。Laravel更新1対多の関係

Updateメソッドコード:

public function update(Request $request, $id) 
    { 
     $this -> validate($request, [ 
      'name'   => 'required', 
      'max_students' => 'required', 
      'doctors'  => 'required', 
      'description' => 'required' 
     ]); 

     $subject = Subject::find($id); 
     $subject -> name   = $request -> name; 
     $subject -> description  = $request -> description; 
     $subject -> max_students = $request -> max_students; 
     $subject -> save(); 
//PROBLEM 
     $y = Subject::where('id', $subject -> id) -> doctors() -> update(['doctor_id' => $request -> doctors]); 


     Session::flash('success', 'Subject has been updated successfully!'); 
     return redirect() -> route('subjects.index'); 
    } 

$request変数は、すべての更新された医師IDを有する配列を含みます。私は科目表にsubject 1 HAVE 1 DOCTORことがあると私は私がそれを行う方法... SUBJECT 1 HAVE 2 DOCTORSにそれを更新した?例

については

私は変数をすべて持っていますが、subjects_doctorsテーブルでそれらを更新することはできません。

答えて

0

Laravelのsync()関数を使用して問題を解決しました。ありがとう。

ここでは

$subject = Subject::find($id); 
    $subject -> name   = $request -> name; 
    $subject -> description  = $request -> description; 
    $subject -> max_students = $request -> max_students; 
    $subject -> save(); 

    $subject -> doctors() -> sync($request -> doctors); 
を助けるかもしれないコードがあります