javascript - adonisjs Controller 中的更新方法

标签 javascript adonis.js

如何在不创建新数据的情况下更新数据库中的数据?

async update ({ params, request, response }) {
    const product = await Product.find(params.id)

    product.name = request.input('name')
    product.descr = request.input('descr')
    product.qtd = request.input('qtd')
    product.sub_descr = request.input('sub_descr')
    product.price = request.input('price')

    product.save()

    return response.redirect('/')
  }

这段代码正在创建一个新实例,product.update()方法返回一个错误

最佳答案

Adonisjs lucid 支持自动 inserts & updates - 意味着它根据输入智能更新或插入记录。

根据文档:

The save method persists the instance to the database, intelligently determining whether to create a new row or update the existing row.

但是,如果您想执行更新/批量更新,您可以随时构建一个查询,如所述 here

但是你可能会遇到的问题

Bulk updates don’t execute model hooks.

插入/更新示例:

const User = use('App/Models/User')

const user = new User()
user.username = 'virk'
user.email = 'foo@bar.com'

// Insert
await user.save()

user.age = 22

// Update
await user.save()

批量更新示例:

const User = use('App/Models/User')

await User
  .query()
  .where('username', 'virk')
  .update({ role: 'admin' })

关于javascript - adonisjs Controller 中的更新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914617/

相关文章:

javascript - 如果没有大括号,将大括号放入 javascript?

javascript - 如何使可拖动和可调整大小的矩形在单击时出现并在释放时消失?

javascript - 返回 Controller AdonisJS 中的 View

javascript - promise 迭代一系列链接,使用 mercury-client 解析它们并将解析的内容推送到一个新数组中

javascript - 如果已定义或分配给它,则用于添加到变量的速记/函数?

javascript - 在 JavaScript 中更新数据后,我的 DOM 对象不会更新

javascript - JavaScript 和 PHP 中的动态变量

javascript - AdonisJs 分享会

node.js - AdonisJS 5、动态连接数据库

node.js - 如何使用指示性添加唯一规则?