Bookshelf JS访问模型的idAttribute属性的值

时间:2017-05-15 15:20:58

标签: javascript knex.js bookshelf.js

我无法访问模型中的ID。我知道模型可以有我定义的属性idAttribute。我的问题是我想使用我的模型的ID来进行查询,但我不知道如何。我已阅读过bookshelfJS文档,但无济于事。任何帮助是极大的赞赏。我的代码看起来像这样:

let Recipe = bookshelf.Model.extend({
  tableName: 'recipes',
  idAttribute: 'id',
  visible: ['name', 'description', 'prep_time', 'cook_time', 'notes', 
  'image_url', 'ingredients', 'instructions', 'tags', 'votes'],
  hasTimestamps: true,


  votes: function() {
    // return this.hasMany(RecipeVote);
    bookshelf.knex('recipes_votes')
    .sum('vote')
    .where('recipe_id', `I WANT MY MODELS ID HERE`)
    .groupBy('recipe_id')
    .then(function (result) {
      // cb(null, sum)
      console.log('SUM:', result[0].sum);
      return result[0].sum;
    })
    .catch(function (err) {
      // cb(err)
      console.log('THERE WAS AN ERROR:', err);
    });
  }
});

1 个答案:

答案 0 :(得分:1)

我认为您可以通过以下方式访问id属性:

this.attributes.id

OR

this.get('id')