2017-10-24 2 views
0

두 모델 중 하나가 Order이고 다음은 OrderItem이고 일대 다 관계가 있습니다. 즉, 한 주문에 더 많은 주문이 있습니다.ORM이 결과를 얻지 못했습니다.

내가 그 순서

1) Order PK:id

2) 여기 OrderItem FK:order_id Refers id in Order

의 모든 ORDERITEMS 각 순서를 얻고 싶은 것은

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 아무튼 '내 관계입니다 t는 주문을 포함합니다. 상품 번호

+0

당신은 'OrderItem.belongsTo (Order, {foreignKey :'id '})) 대신에 속한 관계를 정의해야합니다. –

답변

0

hasOne은 id를 운명 모델에 넣습니다. 즉, Order에 외래 키를 생성합니다. hasMany 만 사용하면됩니다 (Order.hasMany(OrderItem, { as: 'orders');). 이 작업을 수행하면 OrderItem에 Order of Foreign Key가 생깁니다. 당신은 순서와 항목을 필요로하는 경우

그런 다음 쿼리는이 절에 포함 사용해야합니다 : '

Order.findAll({ 
    where:{ 
     artist_id:req.user.id 
    }, 
    include: [{ 
     model: OrderItem, 
     as: 'orders' 
    }] 
}).then(function(result){ 
    console.log(result); 
}) 

Remenber as을 사용하기를, 이것은 당신이 더있는 경우가 다스 려하는 관계로 sequelize을 말할 것이다 같은 모델에있는 것보다.

관련 문제