php - 在 Laravel API 请求中更新多对多关系后返回模型时出错
问题描述
我正在设置一个 Laravel API,并且正在处理用户模型。
它有两种关系: - 一对多关系:角色 - 多对多关系:团队
当我通过 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 {
email: "admin@admin.com"
first_name: "Admin"
teams: [4,5,6]
...
}
它在数据库中正确更新,但请求的返回对象在 teams 数组中不包含任何值:
User {
email: "admin@admin.com"
first_name: "Admin"
teams: []
...
}
解决方案
推荐阅读
- javascript - 如何在午夜或基本上在 Javascript 中的新一天更新当前日期
- docker - 从 docker 容器安装 boto3
- java - 引导样式不起作用(不折叠)
- linux - 如何永久设置 GOPATH 环境变量
- c# - 在构建后事件之前或之后使用强名称对程序集进行签名?
- java - 为什么 urlConnection.getContentType() 为从 url 读取的某些图像提供 null 值?
- javascript - 从节点js中的一组MYSQL元素中选择特定元素
- angular - i18n 消息中的动态变量
- .net - 如何从 Winforms .Net 应用程序发送 Firebase Analytics 事件?
- c# - Windows 搜索查询中的包含功能不起作用