首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在关系中使用findOrCreate - Adonis.js

如何在关系中使用findOrCreate - Adonis.js
EN

Stack Overflow用户
提问于 2019-07-26 11:09:09
回答 1查看 492关注 0票数 0

我有一个用户表和一个用户地址表。

所以在地址路线的改变中,我想做一些骗局。

寻找或创造

我已经把关系做好了,../Models/User.js

代码语言:javascript
复制
address() {
  return this.hasOne('App/Models/UserAddress')
}

注:这种关系正在起作用。

代码语言:javascript
复制
await user.posts().fetch()

它工作得很完美

但是下面的代码不工作

代码语言:javascript
复制
const user = await User.findOrFail(auth.user.id)
const data = await request.only([
  'street',
  'number',
  'complement',
  'district',
  'city',
  'state',
  'zip'
])

user.address().findOrCreate(data)

但是这会产生一个错误

user.address (...). findOrCreate is not a function

有人能告诉我在人际关系中做这个Find Or Create的最好方法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-16 01:46:38

不,那不管用。hasOne返回HasOne对象,这是一个BaseRelation对象,它没有findOrCreate,它只适用于BaseRelation模型。

我建议,因为您已经有了用户ID,并且我假设这是您的Address类引用的外键。

代码语言:javascript
复制
await Address.findOrCreate(
 { user: auth.user.id },
 {
   ... your data here,
 }
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57218836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档