Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gorm Find()检索多行时出现致命错误_Go_Graphql_Go Gorm - Fatal编程技术网

使用gorm Find()检索多行时出现致命错误

使用gorm Find()检索多行时出现致命错误,go,graphql,go-gorm,Go,Graphql,Go Gorm,我遇到了一个显而易见的操作:使用gorm.Find()方法检索多行 mysql表中填充了2个值。以下是json样式的内容: { { Email: bob@mail.com }, { Email: alice@mail.com }, } 这是我运行程序时的结果: 2020/05/13 12:23:17 Listening for requests on :8000 2020/05/13 12:23:22 {2 alice@mail.com} 2020/05/13 12:23:22 &am

我遇到了一个显而易见的操作:使用gorm.Find()方法检索多行

mysql表中填充了2个值。以下是json样式的内容:

{
  { Email: bob@mail.com },
  { Email: alice@mail.com },
}
这是我运行程序时的结果:

2020/05/13 12:23:17 Listening for requests on :8000
2020/05/13 12:23:22 {2 alice@mail.com}
2020/05/13 12:23:22 &{{{0 0} 0 0 0 0} 0xc0004cee40 <nil> 2 0xc00031e3c0 false 0 {0xc00035bea0} 0xc0004b3080 {{0 0} {<nil>} map[] 0} 0xc000408340 <nil> 0xc0004cee60 false <nil>}
2020/05/13 12:23:17接听8000上的请求
2020/05/13 12:23:22 {2 alice@mail.com}
2020/05/13 12:23:22&{{{{0 0}0 0}0xc0004cee40 2 0xc00031e3c0 false 0{0xc00035bea0}0xc0004b3080{{0 0}映射[]0}0xc000408340 0xc0004cee60 false}

我的代码有什么问题?似乎从所有的图托/苏/等等。。来源:我正确定义了一个slice变量并将其传递给Find()函数。

您需要使用一个指针的slice

users := make([]*model.User, 0, 2)
if err := r.DB.Find(&users).Error; err != nil {
    log.Fatal(err)
}

您需要使用一段指针

users := make([]*model.User, 0, 2)
if err := r.DB.Find(&users).Error; err != nil {
    log.Fatal(err)
}
希望能有帮助


希望它能帮上忙

它工作完美,谢谢!你能告诉我一个资源来理解“.Error”是如何工作的吗?它是标准围棋库的一部分吗?是否有其他方法来处理gorm中的错误?感谢您指出解决方案,我将确保阅读有关这些主题的文档!它工作完美无瑕,谢谢!你能告诉我一个资源来理解“.Error”是如何工作的吗?它是标准围棋库的一部分吗?是否有其他方法来处理gorm中的错误?感谢您指出解决方案,我将确保阅读有关这些主题的文档!
users := make([]*model.User, 0, 2)
if err := r.DB.Find(&users).Error; err != nil {
    log.Fatal(err)
}
if err := r.DB.Find(&users); err != nil { // <-- not working
    log.Fatal(err)
}
if err := r.DB.Find(&users).Error; err != nil {
    log.Fatal(err)
}