Как получить дочерние элементы родительского элемента с помощью значения идентификатора внешнего ключа с помощью VuexORM? - PullRequest
0 голосов
/ 05 февраля 2020

Документация 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();
...