我正在设置Laravel API,并且正在处理User模型。
它具有两个关系: -一对多关系:角色 -多对多关系:团队
当我通过API请求更新一个用户时,它不会发送回更新后的多对多关系。
这是现在的更新功能:
public function update(Request $request,$id)
{
$user = User::with('role','teams')->findOrFail($id);
$user->update($request->all());
if ($request->teams) {
$user->teams()->sync($request->teams);
}
if ($request->role) {
$user->role()->associate(Role::findOrFail($request->role));
}
$user->save();
return response()->json($user,200);
}
我正在发送一个User对象:
User {
email: "admin@admin.com"
first_name: "Admin"
teams: [4,5,6]
...
}
它在数据库中正确更新,但是请求的返回对象在teams数组中不包含任何值:
User {
email: "admin@admin.com"
first_name: "Admin"
teams: []
...
}