0

我想知道是否可以在 emberfire 中创建多对多关系。我有以下型号:

//Employee
name: DS.attr('string'),
position: DS.attr('string'),
accessoryPosition: DS.attr('string'),
education: DS.attr('string'),
experience: DS.attr('string'),
imgUrl: DS.attr('string'),
teachingIn: DS.attr('string'),
subjects: DS.hasMany('subject', {async: true})

//Subject
name: DS.attr('string'),
courseDescriptionUrl: DS.attr('string'),
description: DS.attr('string'),
examDescriptionUrl: DS.attr('string'),
imgUrl: DS.attr('string'),
sportsSubject: DS.attr('boolean'),
outdoorSubject: DS.attr('boolean'),
commonSubject: DS.attr('boolean'),
teachers: DS.hasMany('employee', {async : true})

然后在我的员工控制器中:

update(subjects) {
      this.get('model.employee').set('subjects',subjects);
      this.get('model.employee').save();

    }

但他只将它添加到我的 /employees 端点。无论如何,可以说这种关系是相互的吗?

4

1 回答 1

0

您必须手动将雇员添加到主题中。一种方法是这样的:

update(subjects) {
   this.get('model.employee').set('subjects', subjects);
   this.get('model.employee').save();

   subjects.forEach(subject => {
     subject.get('teachers').addObject(subject);
   });
   subjects.invoke('save');
}

Array#pushObjectsubject如果它已经不在数组中,则添加,并在数组的每个元素上Array#invoke调用该方法。save

希望这会有所帮助。

于 2016-01-17T20:41:18.320 回答