0

[BookshelfJS][bookshelfjs] を ORM に使用していますが、thoughテーブルのデータにアクセスする方法を知りたいです。

私は 3 つのモデルを持っており、Recipeが2 つを結合しています。IngredientRecipeIngredient

var Recipe = BaseModel.extend({
  tableName: 'recipe',

  defaults: { name: null },

  ingredients: function () {
    return this
      .belongsToMany('Ingredient')
      .through('RecipeIngredient')
      .withPivot(['measurement']);
  }
}));

var Ingredient = BaseModel.extend({
  tableName: 'ingredients',

  defaults: { name: null },

  recipes: function () {
    return this
      .belongsToMany('Recipe')
      .through('RecipeIngredient');
  }
}));

var RecipeIngredient = BaseModel.extend({
  tableName: 'recipe_ingredients',

  defaults: { measurement: null },

  recipe: function () {
    return this.belongsToMany('Recipe');
  },

  ingredient: function () {
    return this.belongsToMany('Ingredient');
  }
}));

Recipe次に、 をすべて取得しようとしましたが、 にアクセスするIngredients方法がわかりません。measurementRecipeIngredient

Recipe
  .forge({
    id: 1
  })
  .fetch({
    withRelated: ['ingredients']
  })
  .then(function (model) {
    console.log(model.toJSON());
  })
  .catch(function (err) {
    console.error(err);
  });

戻る:

{
  "id": 1,
  "name": "Delicious Recipe",
  "ingredients": [
    {
      "id": 1,
      "name": "Tasty foodstuff",
      "_pivot_id": 1,
      "_pivot_recipe_id": 1,
      "_pivot_ingredient_id": 1
    }
  ]
}

値なしmeasurement

メソッドが値を取得したと思っていました.withPivot(['measurement'])が、追加のデータは返されません。

何かを見逃したり、これがどのように機能するかを誤解したりしましたか?

4

1 に答える 1