模型同步关联的时候可不可以加where条件?

我有个需求就是希望模型关联在同步数据的时候 , 只同步某个条件下的数据, 其他的不变,例如下面的

模型同步关联的时候可不可以加where条件?
我只想同步modify_user_type=1的标签, 我写成

$user = User::find(1);
$user->tag()->where('modify_user_type', 1)->sync([4,6]);

结果就是数据表里就剩下两条数据tag_id为4和6, modify_user_type = 2的那条数据被删除掉了, sync不支持where条件吗?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

如果您不想移除现有的 IDs,可以使用 syncWithoutDetaching 方法:

$user->roles()->syncWithoutDetaching([1, 2, 3]);

3年前 评论
pengpeng_ (楼主) 3年前
lchola (作者) 3年前
lchola (作者) 3年前
pengpeng_ (楼主) 3年前
讨论数量: 1

如果您不想移除现有的 IDs,可以使用 syncWithoutDetaching 方法:

$user->roles()->syncWithoutDetaching([1, 2, 3]);

3年前 评论
pengpeng_ (楼主) 3年前
lchola (作者) 3年前
lchola (作者) 3年前
pengpeng_ (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!