【问题标题】:Relationship from relationship Model Query Sequelize关系模型查询 Sequelize
【发布时间】:2022-01-26 14:38:56
【问题描述】:

我有一个问题,关于如何在 NODEJS 中使用 SEQUELIZE 恢复另一个关系中的关系。

例如,在 Laravel PHP 中我可以这样做:

Model::with(['character.genetic'])->get()

这样会带来“Character”的关系以及“Character has with Genetic”的关系,但是在NODE中怎么做呢?

以下是我在 NodeJS 中的代码示例:

let data = await PlayerCharacter.findAll({
        include: ['character.genetic'], ///dont works
        where: {
          playerId: req.playerId,
        },
        order: [
          ['levelId', 'desc']
        ]
      });

我的班级主要

import Sequelize from 'sequelize';
import database from '../database';

const PlayerCharacter = database.define('player_characters', {
    .....
    characterId: {
        type: Sequelize.BIGINT,
        allowNull: false,
    },
    .....
});

/**
 * Relationships
 */

PlayerCharacter.belongsTo(Character, {
    foreignKey: 'characterId',
    as: 'character',
});

export default PlayerCharacter;

我的班级角色

import Sequelize from 'sequelize';
import database from '../database';

const Character = database.define('characters', {
    ...
    geneticId: {
        type: Sequelize.INTEGER,
        allowNull: false,
    },
   ....
}, {
    timestamps: false,
});

/**
 * Relationships
 */

Character.hasOne(CharacterGenetic, {
    foreignKey: 'geneticId',
    as: 'genetic',
});

export default Character;

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

    您应该像这样使用嵌套的include 选项:

    let data = await PlayerCharacter.findAll({
            include: [{
              model: Character,
              as: 'character',
              include: [{
                model: CharacterGenetic,
                as: 'genetic'
              }  
              ]
            }
            ],
            where: {
              playerId: req.playerId,
            },
            order: [
              ['levelId', 'desc']
            ]
          });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多