Как правильно установить отношение относится к петле 3? - PullRequest
0 голосов
/ 18 января 2019

У меня проблема с отношением ownTo к обратной петле 3, это отношение один к одному, одно клиентское участие имеет одно участие. вот моя конфигурация для каждой модели

KartParticipation.json

"ClientParticipation": {
      "type": "belongsTo",
      "model": "ClientParticipation",
      "foreignKey": "kartParticipationId"
    },

ClientParticipation.json

"KartParticipation": {
      "type": "belongsTo",
      "model": "KartParticipation",
      "foreignKey": "clientParticipationId"
    },

когда я пытаюсь сохранить отношения как

kartParticipation.ClientParticipation(clientParticipation);

я могу видеть с

console.log(clientParticipation)

что мои отношения выполнены правильно, но не сохранены в базе данных

Может кто-нибудь объяснить мне, что я делаю не так, пожалуйста?

1 Ответ

0 голосов
/ 22 января 2019

Возможно, я ошибаюсь, но два отношения принадлежат для меня ничего не значат ... Вот что я бы сделал вместо этого:

В KartParticipation.json:

"clientParticipation": {  //starts the included relation with a lowerCase might be best practice, tho
      "type": "belongsTo",
      "model": "ClientParticipation",
      "foreignKey": "" //you don't need to precise a custom foreign if you use the classic one (easiest to read, imo)
    }

В ClientParticipation.json:

"kartParticipation": {
      "type": "hasOne",
      "model": "KartParticipation",
      "foreignKey": ""
    }

Затем, чтобы добавить отношение:

ClientParticipation.findOne({where: {id: 'your_id'}}, function (err, clientParticipation) {
                if (err)
                    return cb(err, null);

                if (clientParticipation && clientParticipation.id) {
                    var newKartParticipation = {'object_with': 'your_datas'};
                    clientParticipation.kartParticipation.add(newKartParticipation); // this is the code you were seeking, tho
                }
            });

Наконец, вы можете проверить, существует ли отношение, запросив:

GET /ClientParticipation/{id}/kartParticipation

или программно:

ClientParticipation.findOne({where: {id: 'your_id'}, include : 'kartParticipation'}, function (err, clientParticipation) {
    console.log(clientParticipation.kartParticipation);
});
...