I get the following error when calling hasMany using Bookshelf:
A valid target model must be defined for the roles hasMany relation
Role.js
var Data = require('../server-includes/Data'), User = require('./User'); var Role = Data.bookshelf.Model.extend({ tableName: 'roles', users: function() { return this.hasMany(User, 'role_id'); } }); module.exports = Role;
user.js
var Data = require('../server-includes/Data'), Role = require('./Role'); var User = Data.bookshelf.Model.extend({ tableName: 'users', role: function() { return this.belongsTo(Role, 'id'); }, }; module.exports = User;
Using:
new Role({ id: req.params.id }) .fetch({ require: true, withRelated:['users'] }) .then(function (role) { role.users().fetch().then(function(users) { console.log('users: ' + users); }); })
source share