Документация VuexORM довольно хороша, когда дело доходит до выбора вещей по первичному ключу. Как бы я сделал это, используя внешний ключ?
Вот мой родительский объект, который будет иметь много BuildingYears
import { Model } from '@vuex-orm/core'
import BuildingYear from './BuildingYear'
export default class Building extends Model {
// This is the name used as module name of the Vuex Store.
static entity = 'buildings'
static fields () {
return {
buildingId: this.number(null),
buildingName: this.string(''),
years: this.hasMany(BuildingYear, 'fiscalYearId')
}
}
}
И дочерний:
import { Model } from "@vuex-orm/core";
export default class BuildingYear extends Model {
static entity = "buildingYears";
static fields() {
return {
fiscalYearId: this.attr(null),
name: this.attr(null)
};
}
}
Как сделать Я возвращаюсь все годы за определенное c здание. В SQL это будет похоже на приведенный ниже фрагмент, где я нацеливаюсь на идентификатор родителя и получаю все годы назад для определенного здания.
SELECT by.* from BuildYear by inner join Building b on b.Id = by.BuildingId where b.Id = 1
Вот что Я пытался, и это не сработало:
Building.query().with('buildingYears', (q) => { q.where('buildingId', 1) }).first();