代码拉取完成,页面将自动刷新
错误详情
/home/wwg/software/golang/go/src/runtime/panic.go:513 +0x1b9
gitee.com/johng/gf/g/container/gvar.(*Var).Val(...)
/home/wwg/software/golang/gopath/pkg/mod/gitee.com/johng/gf@v1.0.898/g/container/gvar/gvar.go:42
gitee.com/johng/gf/g/container/gvar.(*Var).String(0x0, 0x0, 0x0)
/home/wwg/software/golang/gopath/pkg/mod/gitee.com/johng/gf@v1.0.898/g/container/gvar/gvar.go:55 +0x2e
vector/smartstore/src/core/pt/network/socket/model.GetBoxEventInfo(0xc00035cce8, 0x8, 0x1, 0x11, 0x0, 0x0, 0x0, 0x0)
/home/wwg/mydata/data/go/smartstore/src/core/pt/network/socket/model/model.go:213 +0x4c9
vector/smartstore/src/core/pt/network/packethandle.infoCommand(0xc00035cce8, 0x8, 0xc00036c592, 0x3, 0xe, 0x8, 0xc0000a8060, 0xc000684000)
发生错误的代码
if r, err := db.Table("`event` ev").
InnerJoin("police po", "ev.used = po.po_id").
InnerJoin("certificate ce", "po.ce_id = ce.ce_id").
InnerJoin("certposition cp", "cp.ce_id = ce.ce_id").
InnerJoin("control ct", "cp.co_id = ct.co_id").
InnerJoin("store st", "st.co_id = ct.co_id AND cp.se_id = st.se_id").
InnerJoin("box bo", "bo.se_id = st.se_id AND cp.bo_id = bo.bo_id").
Fields("ev.e_id AS eid").
Where("ct.hardwarecode=?", hardware).
And("st.number=?", stnumber).
And("bo.boxnumber=?", boxnumber).
And("ev.status <> ?", "remand").
Value(); err == nil {
return r.String(), nil
} else {
return "", fmt.Errorf("执行出错")
}
错误发生在r.String()那一行代码
找到原因了,就是r的结果可能会为nil,当为nil时就会发生此错误
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@Ryan Newman 是的,gform
在当查询的结果为空的时候返回的结果和error
值都为nil
(有的orm
库会在查询结果为空时返回一个error
,不过从严谨性上考虑,gform
并没有这么做),常见的返回结果判断为以下方式:
if r, err := 链式操作; err == nil && r != nil {
} else {
}
好的,谢谢
登录 后才可以发表评论