我在gobuffalo中使用pop.Connection#ValidateAndCreate遇到麻烦。
purchaseOrder.Items = models.OrderItems{}
... fill purchaseOrder.Items ...
for _, item := range purchaseOrder.Items {
verrs, err := tx.ValidateAndCreate(item)
if err != nil {
return errors.WithStack(err)
}
if verrs != nil {
// show error
}
}
tx
是* github.com / gobuffalo / pop.Connection类型我收到错误:
reflect: call of reflect.Value.Elem on struct Value
行上的verrs, err := tx.ValidateAndCreate(item)
最佳答案
ValidateAndCreate需要该项目作为指针,因为它需要在自动生成的情况下更新ID
属性。 Pop也管理CreatedAt
和UpdatedAt
属性,因此它也必须更改它们。
根据mkopriva的建议,您可以将ValidateAndCreate
调用更改为:
verrs, err := tx.ValidateAndCreate(&item)
if err != nil {
return errors.WithStack(err)
}