模型同步关联的时候可不可以加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条件吗?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

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

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

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

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

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

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

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