Неопределенная привязка (ий) ошибка в bookshelfJs для ограничения возвращаемых столбцов

ОКАЗАНИЕ УСЛУГ

var Model = require('./../models');

var myService = function (query_params, callback) {

    Model.User
        .forge()
        .fetch({
                withRelated: [{
                    'org': function (qb) {
                        qb.column('id', 'name');
                    },
                    'role': function (qb) {
                        qb.column('id', 'role');
                    }
                }]
            })
        .then(function (collection) {
            return callback(null, collection);
        })
        .catch(function (err) {
            return callback(err, null);
        });
};

МОДЕЛЬ

    var User = Bookshelf.Model.extend({
       tableName: 'user',
       org : function () {
         return this.belongsTo(Org, 'org_id');
      },
      role : function () {
         return this.belongsTo(Role, 'role_id');
      }
    });
    var Users =  Bookshelf.Collection.extend({
        model: User
    });


    var Org = Bookshelf.Model.extend({
        tableName: 'org',
        user : function () {
            return this.hasMany(User);
        }
    });
    var Orgs = Bookshelf.Collection.extend({
        model: Org
    });

    var Role = Bookshelf.Model.extend({
        tableName: 'roles',
        user: function() {
            return this.hasMany(User);
        }
    });


    module.exports = {
        User: User,
        Users: Users,
        Org: Org,
        Orgs: Orgs
    };

На выходе я получаю все поля пользовательских данных и указанное поле соответствующей таблицы пользователя и роли,

Как я могу ограничить поля для пользовательской таблицы.

Я попробовал это:

   .fetch({
          withRelated: [{
           'org': function (qb) {
               qb.column('id', 'name');
           },
           'role': function (qb) {
               qb.column('id', 'role');
           }
          }],
     columns : ['id']
     })

Однако я получаю сообщение об ошибке:

Error: Undefined binding(s) detected when compiling SELECT query: 

1 ответ

Это была небольшая ошибка, я не передавал org_id и role_id в возвращаемом столбце parent, с которым будет происходить привязка для таблицы детей.

.fetch({
          withRelated: [{
           'org': function (qb) {
               qb.column('id', 'name');
           },
           'role': function (qb) {
               qb.column('id', 'role');
           }
          }],
     columns : ['id','org_id','role_id']
     })
Другие вопросы по тегам