如何更新Laravel的相关表格?

时间:2016-09-16 21:54:34

标签: php laravel

我正在使用Laravel 5.3 如何更新Laravel中的相关表格?

有2个表,studentshobbies,它们具有多对多关系。

在视图中,爱好是复选框,如下所示:

<input class="form-check-input" type="checkbox" name="hobby[]" value="1" > basketball
<input class="form-check-input" type="checkbox" name="hobby[]" value="2" > football
<input class="form-check-input" type="checkbox" name="hobby[]" value="3" > swimming

在控制器中,store()方法是这样的,它可以工作:

public function store(Request $request)
{
    $student=Student::create($request->except('hobby'));
    $student->hobbies()->attach($request->hobby);
    return redirect()->action('StudentController@index');
}

update()方法是这样的,爱好无法更新:

public function update(Request $request, $id)
{
    $student = Student::findOrFail($id);
    $student->update($request->except('hobby'));

    //How to update hobbies?
    $student->hobbies()->attach($request->hobby);

    return redirect()->action('StudentController@show', ['id' => $id]);
}

如何更新爱好?

1 个答案:

答案 0 :(得分:3)

您不应该使用更新。使用sync方法:

$student->hobbies()->sync($request->hobby);