0
Je possède ce 3 modèles:Sequelize BelongsToMany: colonne personnalisée dans la clause WHERE
var User = sequelize.define('users', {
name: {
type: DataTypes.STRING(50),
field: 'name'
}
});
var Book = sequelize.define('books', {
name: {
type: DataTypes.STRING(50),
field: 'name'
}
});
var UserBook = sequelize.define('userbook', {
validated: {
type: DataTypes.INTEGER,
field: 'validated',
defaultValue: 0
}
});
Book.belongsToMany(User, {through: UserBook, foreignKey: 'bookId'});
User.belongsToMany(Book, {through: UserBook, foreignKey: 'userId'});
Maintenant, je veux obtenir des livres pour un utilisateur où validé = 1
J'ai essayé:
User.findOne({
where: { id: req.session.user.id }
})
.then(function(user){
user.getBooks({
through: { validated: 1 }
})
.then(function(books){
return res.json({success: true, books: books});
})
});
Mais il retourne tous les livres sans vérifier pour validé = 1
Comment obtenir tous les livres avec validé = 1 ?
Merci
Oui, mais il jette cette erreur: 'ER_BAD_FIELD_ERROR: Unknown column 'books.validated' Où clause' –
Quel est le résultat de ceci: User.findById (req. session.user.id, { comprennent: [{ modèle: livre, par: { où: {validé: 1}} } ] }.) puis ((utilisateur) => { console .log (utilisateur); }) – Arkerone
Oui cela fonctionne! S'il vous plaît mettre à jour votre réponse –