Как запросить дополнительный столбец (кроме братьев и сестер), добавленный в сводную таблицу?
Вот моя схема таблицы RecipeIngredientPivot, к которой я добавил дополнение quantity
столбец.
-----------------------------------------------------
id | ingredientID | recipeID | quantity
-----------------------------------------------------
| 1 | A001 | R001 | 100 |
| 2 | A002 | R001 | 50 |
| 3 | C004 | R001 | 23 |
| 4 | A001 | R002 | 75 |
Мне удалось создать quantity
столбец в сводную таблицу с ingredient_id
а также recipe_id
как братья и сестры, используя только Pivot вместо ModifiablePivot.
extension RecipeIngredientPivot: Pivot {
init(_ recipe: Recipe, _ ingredient: Ingredient, _ quantity: Double) throws {
self.recipeID = try recipe.requireID()
self.ingredientID = try ingredient.requireID()
self.quantity = quantity
}
}
Однако я не знаю, как запросить и получить количество рецепта.
extension Recipe {
var ingredients: Siblings<Recipe, Ingredient, RecipeIngredientPivot> {
return siblings()
}
var quantities: [Double] {
// Not sure how to get this.
}
}
Любая помощь очень ценится.
1 ответ
Я понял. Я должен был сделатьquery(on.req)
& pivot(on: req)
на siblings()
и дождитесь успешного завершения обоих, прежде чем сопоставить результаты.
let ingredientFuture = try recipe.ingredients.query(on: req).all()
let pivotFuture = try recipe.ingredients.pivots(on: req).all()
return ingredientFuture.and(pivotFuture).map { ingredients, pivots in
for (ingredient,pivot) in zip(ingredients, pivots) {
print("\(ingredient) - \(pivot.quantity)")
}
}