在AdonisJs中,级联删除操作默认不会激活模型的beforeDelete
钩子函数。如果你想在级联删除时激活beforeDelete
钩子函数,你需要手动调用模型的delete
方法并传递true
作为第一个参数。
以下是一个代码示例:
const User = use('App/Models/User')
class UserController {
async destroy({ params }) {
const user = await User.find(params.id)
if (user) {
await user.delete(true)
// 这里会激活 User 模型的 beforeDelete 钩子函数
}
}
}
在上面的示例中,我们首先使用User.find
方法找到要删除的用户。然后,我们通过调用delete
方法并传递true
作为参数来删除用户。这将激活User
模型中定义的beforeDelete
钩子函数。
请注意,如果你使用数据库事务来执行级联删除操作,你也需要在删除操作中手动调用delete
方法并传递true
作为参数。
希望对你有所帮助!