javascript - 如何在关系中使用 findOrCreate - Adonis.js
问题描述
我有一个用户表和一个用户地址表。
所以在地址路线的改变中我想做一些骗局
我已经完成了关系../Models/User.js
address() {
return this.hasOne('App/Models/UserAddress')
}
注意:关系有效
await user.posts().fetch()
它完美无缺
但下面的代码不起作用
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
在人际关系中做到这一点的最佳方式吗?
解决方案
不,那是行不通的。hasOne
返回HasOne
object,它是一个BaseRelation
对象,它没有findOrCreate
,仅适用于 Lucid Models。
我建议,因为您已经拥有用户 ID,并且我假设这是您的Address
班级引用的外键来执行此操作
await Address.findOrCreate(
{ user: auth.user.id },
{
... your data here,
}
)
推荐阅读
- node.js - 如何删除未使用的要求和/或导入行?
- pine-script - Pine 脚本句柄关闭值
- ruby-on-rails - 尝试将导轨版本从 4.2.11 升级到 5.0
- c++ - 如何在 QT 中将大量 C 文件导入到我的项目中?
- python - 在 python 中定义一个回调协议,作为任何符合以下模式的函数的结构超类型
- r - getDescriptionStatsBy 仅在因子少于三个级别时显示一个级别
- nlp - 按个人从消息/对话中提取常用/典型短语
- sql - 在 SQL 中计数时如何分隔列?
- r - DiagrammeR - Digraph 流程图 - 箭头上标签的位置和方向
- google-cloud-platform - 如何在 Vertex AI 中安排自定义训练作业的重复运行