php - Laravel 多对多更新特定字段
问题描述
我有很多对多的关系。在邮递员中,我通过 find_id 和状态。
我的查询类似于:UPDATE finds_user SET status = TRUE WHERE find_id = 2 AND user_id = 1。
我现在这样做:
DB::table('finds_user')
->where('find_id', '=', $request->find_id)
->where('user_id', '=', $user->id)
->update(['status' => $request->status]);
我如何使用 Eloquent 而不是 DB Query Builder 来做到这一点?
十分感谢!
解决方案
我们有两个更新条件:
1- find_id = 2
2- 用户 ID = 1。
假设用户模型中名为“finds”的关系名称查询将如下所示:
User::find(1)->finds()->newPivotQuery()->where('find_id',2)->update(['status'=>true])
如果您有一个名为“FindUser”的数据透视表模型:
FindUser::where('user_id',$user->id)->where('find_id',2)->update(['status'=>true]);
推荐阅读
- rascal - createM3FromEclipseFile 的问题
- laravel - 更改语言环境后,Laravel 重定向回同一页面
- product - SAP Commerce Cloud - 从产品到变体产品的属性值继承
- powershell - 将已安装的域计算机应用程序版本导出为 CSV - Chrome
- google-cloud-platform - 来自 batch_annotate_images 的每个 AnnotateImageResponse 中的视觉抓取源图像 uri
- object - 使用 Go 使用 zerolog 将对象记录到云运行
- python - 由于阶段失败,Pyspark 作业中止错误
- html - 该州的边界不会消失:悬停
- nanoframework - Windows Emedded Compact 上的 Socket 缺少方法异常
- python - 如何为用户和管理员创建两个不同的登录名