问题描述
我有两门课: A类:Field1(字符串)、Field2(数字) B类:Field3(指向类1的指针),Field4(字符串)
Field4(B 类)设置为等于 Field1(A 类)。
现在,在 A 类的 beforeSave 触发器中,如何检测其他类中的字段(例如 B 类中的 Field3)指向 A 类中的哪些字段,以便: 可以执行(自定义?)触发器,或者 可以运行一个函数, 更新 B 类中的依赖字段(在本例中为 Field4)?
因为,如果在 Class B 的上下文中没有检测到 Class A 中的此更新,则 Class B 中的数据将不同步!
解决方法
你可以这样做:
Parse.Cloud.afterSave('ClassA',async ({ original,object }) => {
if (original.get('field1') !== object.get('field1')) {
const query = new Parse.Query('ClassB');
query.equalTo('field3',object);
const objs = await query.find({ useMasterKey: true });
objs.forEach(obj => {
obj.set('field4',object.get('field1'));
});
Parse.Object.saveAll(objs,{ useMasterKey: true });
}
});