未定义(类型[]model.Employe没有字段或方法EmpNbr)错误



下面是我的代码:

步骤1:模型文件夹

type EmployeeWithRoot struct {
Employee []Employee
}
type Employee struct {
EmpNbr     sql.NullString  `json:"EmpNbr"`
DateofJoin      sql.NullString   `json:"DateofJoin"`
DeptId  sql.NullString  `json:"DeptId"`
DeptName sql.NullString  `json:"DeptName"`
}

步骤2:代码文件夹

func GetEmpDetails(logRequestId string, logNestedLevel int, EmpNbr string, DateofJoin string) ([]model.EmployeeWithRoot, error) {
logFunctionFunctionName := "code.GetEmpDetails"
logStartTime := time.Now()
logNestedLevel++
defer configurations.TimeTrack(logFunctionFunctionName, logRequestId, logStartTime, logNestedLevel)
rows, err := db.Query(utils.SELECT_OF_EMP_AGGR, EmpNbr, DateofJoin, DeptId, DeptName)
if err != nil {
return nil, err
}
defer rows.Close()
var e []model.EmployeeWithRoot
for rows.Next() {
var x model.EmployeeWithRoot
err := rows.Scan(&x.Employee.EmpNbr, &x.Employee.DateofJoin, &x.Employee.DeptId,&x.Employee.DeptName)
if err != nil {
return nil, err
}
e = append(e, x)
}
err = rows.Err()
if err != nil {
return nil, err
}
return e, nil
}

第3步:API文件夹

Employee, err := code.GetEmpDetails(logRequestId, logNestedLevel, EmpNbr, DateofJoin)
if err != nil {
log.Panic(err)
}
marshalDataForRequestContentType(logRequestId, logNestedLevel, w, r, Employee)

我是新来的郎和得到下面的错误。有谁能帮我看一下我缺了哪行代码吗?

x。受雇者EmpNbr未定义(类型[]model.Eemployee没有字段或方法EmpNbr(x.Employee.DateofJoin未定义(类型[]model.Emplloyee没有字段或方法DateofJoin(x.Employee.DeptId未定义(类型[]model.Eemployee没有字段或方法DeptId(x.Employee.DeptName未定义(类型[]model.Eemployee没有字段或方法DeptName(

您的问题在这里:

var x model.EmployeeWithRoot
err := rows.Scan(&x.Employee.EmpNbr, &x.Employee.DateofJoin, &x.Employee.DeptId,&x.Employee.DeptName)

x.Employee是一个切片:在模型中定义为[]Employee

您正试图在切片上调用.EmpNbr,所以这显然不起作用。

这将起作用:

var x model.Employee
err := rows.Scan(&x.EmpNbr, &x.DateofJoin, &x.DeptId,&x.DeptName)

最新更新