2015-02-25 9 views
10

Ho problemi a salvare i dati in una relazione "molti-a-molti".Bookshelf.js - come salvare la relazione molti-a-molti?

Qui sono i miei modelli:

var CoursePeople = bookshelf.Model.extend({ 
    tableName: 'course_people' 
}); 

var Course = bookshelf.Model.extend({ 
    tableName: 'course', 
    users: function(){ 
     return this.belongsToMany(User); 
    } 
}); 

var City = bookshelf.Model.extend({ 
    tableName: 'city', 
    users: function(){ 
     return this.hasMany(User); 
    } 
}); 

var User = bookshelf.Model.extend({ 
    tableName: 'people', 
    city: function(){ 
    return this.belongsTo(City); 
    }, 
    courses: function(){ 
    return this.belongsToMany(Course); 
    } 
}); 

La sfida è, come inserire gli ID che ricevo in ordine alla tabella di collegamento nel mio database (denominato "course_people")?

Ecco il mio codice finora:

app.post('/users/', function(req, res) { 
     console.log(req.body); 
    var courses_ids = req.body.courses_ids; //array of ids 
    delete req.body.courses_ids; 
    new User(req.body).save().then(function(user){ 
     console.log(user.id); 
     //How to store the ids in the junction table? 

    }).catch(function(error){ 
     console.log(error); 
    }); 
}); 

Grazie ancora per il vostro tempo e suggerimenti!

risposta

13

Che cosa si vuole fare qui è collegare gli ID alla vostra relazione, in questo modo:

app.post('/users/', function(req, 
    console.log(req.body); 
    var courses_ids = req.body.courses_ids; //array of ids 
    delete req.body.courses_ids; 
    new User(req.body).save() 
    .then(function(user){ 
    // this is important 
     return user.courses().attach(courses_ids); 
    }).catch(function(error){ 
     console.log(error); 
    }); 
}); 

Va anche precisato nei documenti ufficiali: http://bookshelfjs.org/#Model-attach

+0

ho provato questo e non ha funzionato Diciamo che il mio array di valori assomiglia a [1,2,3,4,5] il suo tentativo di inserire le colonne in questo modo: 'inserisci in' users_courses' ('course_id',' user_id') valori ('[1,2 , 3,4,5] ',' 1 ') ' –

Problemi correlati