模型同步关联的时候可不可以加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条件吗?
如果您不想移除现有的 IDs,可以使用 syncWithoutDetaching 方法:
$user->roles()->syncWithoutDetaching([1, 2, 3]);