adonisjs控制器中的更新方法

问题描述 投票:0回答:1

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

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()方法返回一个错误

javascript adonis.js
1个回答
0
投票

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

根据文档:

保存方法将实例持久化到数据库,智能地确定是创建新行还是更新现有行。

但是,如果您要执行更新/批量更新,则始终可以按照here所述建立查询。

但是您可能会遇到的问题

批量更新不执行模型挂钩。

插入/更新示例:

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

const user = new User()
user.username = 'virk'
user.email = '[email protected]'

// 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' })
© www.soinside.com 2019 - 2024. All rights reserved.