[英]Updating Pivot Table in laravel 5.3
我正在使用laravel-5.3。 我在更新表時遇到一些問題。 假設我有兩個模型(研究和成員)。 兩者都有多對多的關系。 我有一個名為member_research的數據透視表。 此表包含以下列:
因此,當我嘗試更新某些研究時,我可能需要更新研究成員及其角色以及其他信息。 我實際上嘗試以下方式:
$Research = Researches::find($request->id);
$Research->Member->all();
foreach ($Research->member as $id){
$id->pivot->role = $role;
$id->pivot->save();
}
在這種方法中,角色正在更新。 但是當我試圖更新member_id時,它無法正常工作。 這是代碼
$Research = Researches::find($request->id);
$Research->Member->all();
foreach ($Research->member as $id){
$id->pivot->member_id = $new_id ;
$id->pivot->save();
}
誰能幫我?
您不應手動更新數據透視表中的ID。
應從數據透視表中刪除未鏈接的相關記錄,並應通過在數據透視表中插入新行來定義新關系。
如果要更新所選成員的角色,可以使用updateExistingPivot()方法:
$research->members()->updateExistingPivot($memberId, ['role' => $newRole]);
如果要將成員鏈接到研究並設置角色,請使用save()方法:
$research->members()->attach($memberId, ['role' => $newRole]);
如果要取消成員與研究的關聯,請使用detach()方法:
$research->members()->detach($memberId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.