方法.save()正在插入而不是在adonis / node.js中更新我的模型

时间:2019-10-28 16:50:39

标签: node.js adonis.js

我按照adonis documentation创建一个方法来在控制器中进行更新:

  

save方法将实例持久化到数据库中。还有   明智地确定是创建新行还是更新现有行   行。

所以我尝试这种方式:

update ({ request, auth }){

    let user = new User()
    user.merge(request.all())
    const user = await user.save()
    return user 
}

所以我在这条路线上发出了放置请求,并且收到此错误:

  

消息:“插入”用户“ ...” id“-重复的键值违反   唯一约束“ users_pkey””

我如何更新模型?在请求中,我传递了需要更新的ID,但Lucid认为这是插入内容...

2 个答案:

答案 0 :(得分:3)

请尝试删除statistics.median_low,因为您已经在两行上方定义了用户。这可能导致不必要的功能。

答案 1 :(得分:1)

使用以下方式修复:

async update ({ request, auth }){

    let user = await User.findOrFail(request.params.id)
    user.merge(request.all())
    await user.save()
    return user

}