2015-02-25 3 views
10

У меня проблемы с сохранением данных в отношениях «многие ко многим».Bookshelf.js - как сохранить отношения «многие ко многим»?

Вот мои модели:

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); 
    } 
}); 

Задача состоит в том, как вставить идентификаторы, которые я получаю в массиве таблицы перехода в моей базе данных (с именем «course_people»)?

Вот мой код до сих пор:

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); 
    }); 
}); 

Еще раз спасибо за ваше время и предложения!

ответ

13

То, что вы хотите сделать здесь прикрепить идентификаторы к вашему отношению, например:

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); 
    }); 
}); 

Это также указан в официальной документации: http://bookshelfjs.org/#Model-attach

+0

я попробовал это, и это не сработало позволяет сказать, что мой массив значений выглядит как [1,2,3,4,5], который пытается вставить такие столбцы: 'insert into' users_courses' ('course_id',' user_id') значения ('[1,2 , 3,4,5] ',' 1 ') ' –

 Смежные вопросы

  • Нет связанных вопросов^_^