AdonisJS V4 - belongsToMany - sync()/attach() - 类型 uuid 的输入语法无效:“”
AdonisJS V4 - belongsToMany - sync()/attach() - invalid input syntax for type uuid: ""
不确定为什么会出现此错误: invalid input syntax for type uuid: ""
beforeCreate
挂钩事件有效,并插入了列 ID,但我仍然收到那个奇怪的错误。
我在这里遗漏了什么吗?
枢轴 Table:
this.create('customer_promotion', (table) => {
table.uuid('id').primary()
table.uuid('tenant_id')
table.uuid('customer_id')
table.uuid('promotion_id')
table.string('assigned_by')
table.timestamps()
})
推广模式:
class Promotion extends Model {
...
customers() {
return this
.belongsToMany('App/Models/Customer')
.withPivot(['created_at', 'assigned_by', 'id'])
.pivotModel('App/Models/CustomerPromotion')
}
...
}
module.exports = Promotion
CustomerPromotion 模型:
const uuid = use('uuid/v4')
class CustomerPromotion extends Model {
static get table () {
return 'customer_promotion'
}
static boot() {
super.boot()
this.addHook('beforeCreate', async (instance) => {
instance.id = uuid.v4()
})
}
static get incrementing() {
return false
}
}
module.exports = CustomerPromotion
SomeController.js:
...
await promotion.customers().sync(customerIdArray, (row) => {
row.assigned_by = `${first_name} ${last_name}`
row.created_at = moment().format('YYYY-MM-DD')
})
...
更新:
另一个奇怪的是,即使我有错误并且插入了UUID,它也被存储了。
见下图:
好吧,我在这个 lmao 上浪费了几个小时,attach()
没问题。
我刚刚调试了我传递的数组中的一项 attach()
只是一个空字符串。
因此错误 invalid input syntax for type uuid: ""
不确定为什么会出现此错误: invalid input syntax for type uuid: ""
beforeCreate
挂钩事件有效,并插入了列 ID,但我仍然收到那个奇怪的错误。
我在这里遗漏了什么吗?
枢轴 Table:
this.create('customer_promotion', (table) => {
table.uuid('id').primary()
table.uuid('tenant_id')
table.uuid('customer_id')
table.uuid('promotion_id')
table.string('assigned_by')
table.timestamps()
})
推广模式:
class Promotion extends Model {
...
customers() {
return this
.belongsToMany('App/Models/Customer')
.withPivot(['created_at', 'assigned_by', 'id'])
.pivotModel('App/Models/CustomerPromotion')
}
...
}
module.exports = Promotion
CustomerPromotion 模型:
const uuid = use('uuid/v4')
class CustomerPromotion extends Model {
static get table () {
return 'customer_promotion'
}
static boot() {
super.boot()
this.addHook('beforeCreate', async (instance) => {
instance.id = uuid.v4()
})
}
static get incrementing() {
return false
}
}
module.exports = CustomerPromotion
SomeController.js:
...
await promotion.customers().sync(customerIdArray, (row) => {
row.assigned_by = `${first_name} ${last_name}`
row.created_at = moment().format('YYYY-MM-DD')
})
...
更新: 另一个奇怪的是,即使我有错误并且插入了UUID,它也被存储了。
见下图:
好吧,我在这个 lmao 上浪费了几个小时,attach()
没问题。
我刚刚调试了我传递的数组中的一项 attach()
只是一个空字符串。
因此错误 invalid input syntax for type uuid: ""