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 に答える