我有两个模型一个是Order
,另一个是OrderItem
,一对多关系,即一个订单有一个订单项可用。
我希望每个订单都包含该订单的所有orderItem
1)Order PK:id
2)OrderItem FK:order_id Refers id in Order
这是我的关系
Order.hasMany(OrderItem, { as: 'orders',targetKey:'order_id' } );
OrderItem.hasOne(Order,{foreignKey:'id'});
sequelize.sync();
Order.findAll({where:{artist_id:req.user.id}}).then(function(result){
console.log(result);
})
但是result
不包含orderItems
答案 0 :(得分:0)
hasOne
将id放在命运模型上,这意味着您将在Order上生成外键。只需要像hasMany
这样使用Order.hasMany(OrderItem, { as: 'orders');
:Order.findAll({
where:{
artist_id:req.user.id
},
include: [{
model: OrderItem,
as: 'orders'
}]
}).then(function(result){
console.log(result);
})
。执行此操作,您将在OrderItem上拥有Order的外键。
然后在您的查询中,如果您需要订单和项目,您必须使用include子句:`
as
使用{{1}}的评论,如果您在同一型号上有多个参考,这将告诉您关系的续集。