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: ""