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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《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年前

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