2017-05-26 120 views
0

我有两个表第一个是科目表第二个是subjects_doctors表。这里的关系是一对多Laravel更新一对多关系

更新方法的代码:

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);