adonisjs 控制器中的更新方法
update method in adonisjs controller
如何在不创建新数据的情况下更新数据库中的数据?
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()
方法 returns 我出错了
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.
但是,如果您想要执行 update/bulk 更新,您可以随时构建一个查询 here。
不过你可能会遇到的问题呢
Bulk updates don’t execute model hooks.
Insert/Update的示例:
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' })
如何在不创建新数据的情况下更新数据库中的数据?
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()
方法 returns 我出错了
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.
但是,如果您想要执行 update/bulk 更新,您可以随时构建一个查询 here。
不过你可能会遇到的问题呢
Bulk updates don’t execute model hooks.
Insert/Update的示例:
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' })