我有一个模型文件,其中有一个struct方法。我想在控制器中使用的方法。但它说“
包模型未声明GetBookings
“.我对Golang很陌生,也许这是一个愚蠢的问题,但我仍然坚持不住。如果有人能纠正我的代码,或者可以在另一个文件中提供如何使用结构方法的另一个选项,我将不胜感激。提前感谢。”。
控制器
package controllers
import (
"encoding/json"
"net/http"
"github.com/Coddyy/beautyfly/pkg/models"
)
func GetBookings(w http.ResponseWriter, r *http.Request) {
bookings, err := models.GetBookings()
res, _ := json.Marshal(bookings)
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
w.Write(res)
}
模型
package models
import (
"database/sql"
"github.com/Coddyy/beautyfly/pkg/entities"
)
type BookingModel struct {
Db *sql.DB
}
func init() {
}
func (bookingModel *BookingModel) GetBookings() ([]entities.Booking, error) {
rows, err := bookingModel.Db.Query("SELECT * FROM bookings")
if err != nil {
return nil, err
} else {
bookings := []entities.Booking{}
for rows.Next() {
var id int64
var customer_ids string
var date string
var time string
var service_ids string
var comments string
err2 := rows.Scan(&id, &customer_ids, &date, &time, &service_ids, &comments)
if err2 != nil {
return nil, err2
} else {
booking := entities.Booking{id, customer_ids, date, time, service_ids,
comments}
bookings = append(bookings, booking)
}
}
return bookings, nil
}
}