想请教一下问题,我想对beego的orm再封装一层,方便使用,可参数类型限制编译不过,不知道怎么改了。
```
举例说明,现有两个数据模型:
// 模型1:
type Post struct {
Id int
Title string
Content string
Status int
}
// 获取数据集
var posts []Post
orm.NewOrm().QueryTable("post").Filter("Status", 1).All(&posts)
// 模型2:
type News struct {
Id int
Title string
Content string
Status int
}
// 获取数据集合
var news []News
orm.NewOrm().QueryTable("post").Filter("Status", 1).All(&news)
```
想着对orm进行再次封装,以便方便调用, 比如抽象出一个方法:
```
func GetDataList(tableName string, dataList interface{}) (datalist interface{}) {
orm.NewOrm().QueryTable(tableName).Filter("Status", 1).All(&datalist)
return datalist
}
```
意想中的调用方式是这样:
```
var posts []Post
fmt.Println(GetDataList("post", post))
var news []News
fmt.Println(GetDataList("news", news))
```
可事实发现编译不过~报错信息:
```
wrong object type `*interface {}` for rows scan, need *backend-api/models.post
```
想问一下在go中这样一般怎么写?
有疑问加站长微信联系(非本文作者)