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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

如果您不想移除现有的 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年前

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