首页 > 解决方案 > 如何在续集中检查子模型的条件?

问题描述

如果父模型具有特定列,我们想包含模型,那么有什么方法可以实现吗?

Notification.findAll({
 include: [{
          model: this.StudentTaskModel,
          attributes: ['title'],
          as: 'student_task',
          required: false,
          where: {
            '$Notifications.object_type$': 'student task'
          }
        }, {
          model: this.UserRequestModel,
          attributes: ['type', 'comment'],
          as: 'user_request',
          required: false,
          where: {
            '$Notifications.object_type$': 'user request'
          }
        }],
        order: [
          [orderBy, orderType]
        ],
        where: {
          user_id: user.id
        }
})

但这是抛出错误

 SequelizeDatabaseError: Unknown column 'Notifications.object_type' in 'on clause'

但是父模型中有列“object_type”

那么,这段代码有什么错误吗?

我的协会是这样的

 Notification.associate = function (models) {
    Notification.belongsTo(models.User, {
      foreignKey: 'user_id',
      sourceKey: 'id',
      as: 'user'
    })

    Notification.belongsTo(models.StudentTask, {
      foreignKey: 'object_id',
      sourceKey: 'id',
      as: 'student_task'
    })

    Notification.belongsTo(models.UserRequest, {
      foreignKey: 'object_id',
      sourceKey: 'id',
      as: 'user_request'
    })
  };

标签: node.jssequelize.js

解决方案


推荐阅读