0

我在 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)

4

1 回答 1

1

ValidateAndCreate需要将项目作为指针,因为它需要更新ID属性以防自动生成。Pop 也管理CreatedAtUpdatedAt属性,因此它也必须更改这些属性。

根据 mkopriva 的建议,您可以将ValidateAndCreate调用更改为:

verrs, err := tx.ValidateAndCreate(&item)
if err != nil {
    return errors.WithStack(err)
}
于 2018-05-11T09:24:22.363 回答