У меня есть несколько ассоциаций между моделями, например:
Patient.hasMany(Transaction, {
as: 'transactions',
foreignKey: 'patient_id',
sourceKey: 'id'
});
Transaction.belongsTo(Patient, {
as: 'patient',
foreignKey: 'patient_id',
targetKey: 'id'
});
Transaction.hasMany(Transaction, {
as: 'transactions',
foreignKey: 'item_to_pay',
sourceKey: 'id'
});
Я пишу запрос, чтобы получить список транзакций, принадлежащих пациенту, и включить связанные с ними модели:
Transaction.findAll({
where: {
patient_id: 1
},
include: [{
model: Patient,
as: 'patient',
attributes: ['first_name']
}, {
model: Transaction,
as: 'transactions',
include: [{
model: Patient,
as: 'patient',
attributes: ['first_name']
}]
}],
});
Однако, когда результат возвращается, он не включает вторую вложенную модель пациента, как я ожидал.
Я также попытался написать другой запрос, чтобы увидеть, смогу ли я получить желаемое result:
Transaction.findAll({
where: {
patient_id: 1
},
include: [{
model: Transaction,
as: 'transactions',
include: [{
model: Patient,
as: 'patient',
attributes: ['first_name']
}]
}],
});
Но этот запрос выдает ошибку и возвращает «Неизвестный столбец« Patient.id »в списке полей».
Кто-нибудь видит что-то не так с моим запросом или ассоциациями? Я что-то не понимаю в ассоциациях здесь?