ORM으로 Sequelize를 사용하여 API를 빌드하고 있습니다. 핵심 논리에 일부 "청취자"를 통합하여 특정 값이 변경되었는지 확인하고이를 기반으로 일부 논리를 해제하고자했습니다.후크 (afterCreate. afterUpdate)를 연관 (pivot, belongsToMany)에서 작동하지 않음
내 주요 관심사 중 하나는 고객과 사용자 간의 피벗 테이블입니다. (BelongsToMany). 관계에는 "is_admin"또는 "notify_user"와 같은 피벗에 몇 가지 추가 필드가 있습니다. 이것은 사용자가 특정 고객에 대한 관리자이고 시스템이이 사용자에게 고객 조치에 대해 통지해야 하는지를 설명합니다.
내 API는 피벗 테이블 데이터의 PATCHING을 지원합니다. 이제 내가하고 싶은 일은 is_admin 값이 변경되면 foo를 다른 곳에서 업데이트하기 위해 다른 로직을 해제하는 것입니다.
모든 후크는 기본 개체 모델 (사용자 및 고객)에서 작동합니다. 그러나 피벗 개체 모델에서 내 후크 중 하나도 해고되지 않습니다.
Sequelize에서 지원되는지 확실하지 않습니다. 사전에
덕분에
나의 관계는 다음과 같이 설정은 다음과 같습니다
private static setupCustomerRelations(sq: Sequelize.Sequelize) {
const user = sq.models['User'] || new UserRepo().getNewInstance().getModel();
const customer = sq.models['Customer'] || new CustomerRepo().getNewInstance().getModel();
const customerUsers = sq.models['customer_users'] || new CustomerUsersRepo().getNewInstance().getModel()
const machine = sq.models['Machine'] || new MachineRepo().getNewInstance().getModel()
customer.belongsToMany(user, {'through': customerUsers});
user.belongsToMany(customer, {'through': customerUsers});
// Machines
machine.belongsTo(customer, {'foreignKey':'customer_id'});
customer.hasMany(machine, {'foreignKey':'customer_id'});
}
그리고이 customerUsers 내가 테이블을 조인에 Bulk hooks과 행운 했어 적절한 모델
'belongsToMany' 연관은 어떻게 정의되어 있습니까? 피벗 테이블이 적절한 모델입니까, 아니면 연결 구성에 문자열로 정의되어 있습니까? –
위의 질문을 편집합니다 – pythic
작동하지 않는 고리를 보여줄 수 있습니까? –