Sequelize - не удалось связать идентификатор из нескольких частей - PullRequest
0 голосов
/ 10 марта 2020

Я застрял здесь на 4 дня. Также это мой первый пост. Я получаю эту ошибку, используя sequelize select с include, through и OrderBy

'Не удалось связать многоэлементный идентификатор "ProposalCust.email".'

Я пытаюсь упорядочить свой выбор по электронной почте с порядком AS C или DES C, и я сначала строю объект orderObject:

orderObject = [[{model: models.Customer , as: 'ProposalCust'}, 'email', 'AS C']]

Выбор следующий:

return models.Proposal.findAndCountAll({
            order: [orderObject],
            include: [
                {
                    model: models.Customer,
                        through: {
                        where: {
                            roleId: 1
                        }
                    },  
                    where: {},
                    as: 'ProposalCust',
                },
            ]
        })
            .then(res => res)
            .catch(err => console.log(err));
    }
};

Спасибо за ваше время.

1 Ответ

0 голосов
/ 11 марта 2020

Вы должны использовать Sequelize.literal для заказа записей по электронной почте следующим образом -

return models.Proposal.findAndCountAll({
            order: [[Sequelize.literal('`ProposalCust`.`email`'), 'ASC']],
            include: [
                {
                    model: models.Customer,
                        through: {
                        where: {
                            roleId: 1
                        }
                    },  
                    where: {},
                    as: 'ProposalCust',
                },
            ]
        })
            .then(res => res)
            .catch(err => console.log(err));
    }
};

Надеюсь, это поможет!

...