0
Ich habe diese 3 Modelle:Sequelize BelongsToMany: benutzerdefinierte Spalte in WHERE-Klausel
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'});
Jetzt möchte ich Bücher für einen Benutzer bekommen, wo validiert = 1
Ich habe dies versucht:
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});
})
});
Aber es gibt alle Bücher ohne Überprüfung validiert = 1
Wie alle Bücher bekommen mit validierten = 1 ?
Danke
Ja, aber es wirft diesen Fehler: 'ER_BAD_FIELD_ERROR: Unknown column 'books.validated' in dem clause' –
Was das Ergebnis dieser ist: User.findById (erf. session.user.id, { umfassen: [{ Modell: Buch, durch: { wobei: {validiert: 1} } } ] }.), dann ((Benutzer) => { Konsole .log (Benutzer); }) – Arkerone
Ja, es funktioniert! Bitte aktualisieren Sie Ihre Antwort –