gpt4 book ai didi

javascript - 关系和逆关系不能一起工作 Adonis JS

转载 作者:行者123 更新时间:2023-11-29 18:42:11 24 4
gpt4 key购买 nike

我有 3 个模型国家、州、城市国家.js

  state () {
return this.hasMany(State, 'id', 'country_id')
}

状态.js

 city () {
return this.hasMany(City, 'id', 'state_id')
}
  stateCountry () {
return this.belongsTo(Country, 'country_id', 'id')
}

城市.js

cityState () {
return this.belongsTo(State, 'state_id', 'id')
}

现在我正在尝试获取两种类型的数据1.从国家>州>城市(正常关系)2. 从city > state > country(反比关系)

case 1:
const countries = await Country.query()
.with('state.city')
.fetch()
case 2:
const citties = await City.query()
.with('cityState.stateCountry')
.fetch()

现在,无论我先运行哪个都会工作并给我正确的结果,但是运行第二个 case 会抛出 500 错误

this.RelatedModel.query 不是函数

现在,如果我重新启动服务器并运行第二个案例,它将正常工作,而第一个案例将停止工作。请帮助我们面对这个问题。看起来像是查询或模型 ORM 中的某种缓存问题。

最佳答案

定义关系时,您需要提供命名空间而不是模型的实例。您的状态模型将变为:

const Model = use('Model')


class State extends Model {

city () {

return this.hasMany('App/Models/City', 'id', 'state_id')

}

stateCountry () {

return this.belongsTo('App/Models/Country', 'country_id', 'id')

}

}

更新您的所有模型,一切都会正常工作。

关于javascript - 关系和逆关系不能一起工作 Adonis JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56255631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com