我的应用中有两个模型,分别命名为 Basket 和 Items。模型篮包含项目列表。所以如下:
篮子:
int id
string name
string imageUrl
List<Items> items
项目:
string name
string description
int basketId
_
我的 2 张 table :
篮子:
id
name
imageUrl
项目:
id
name
description
basketId
我想要做的是检索所有篮子及其所有相应的项目并制作一个 List basketList 对象。我试图加入表格,但我以 4 个包含空项目的篮子而不是一个包含 4 个项目的篮子结束。我正在使用 SQFLite 进行 flutter 。
最佳答案
您可以在不加入表格的情况下执行此操作。首先,您从 sqflite 获得篮子的 Maplist。接下来,当您从 Map 对象转换为 Basket() 对象时,对于列表中的每个篮子,您将获取项目列表并将项目列表添加到篮子中。您可以使用辅助映射函数将 Map 对象从 sqflite 映射到您的对象类。
Future<List<Basket>> getBasketList() async{
var basketMapList = await getBasketMapList();
int count = basketMapList.length;
List<Basket> basketList = List<Basket>();
for (int i=0; i<count; i++){
basketList.add(Basket.fromMapObject(basketMapList[i]));
// for each basket, add the list of items...
Future<List<Item>> itemListFuture = getBasketItemList(basketList[i].basketid);
itemListFuture.then(
(itemList) {
basketList[i].items = itemList;
},
);
}
return basketList;
}
// in basket class. Write a similar function for your items object.
fromMapObject(Map<String, dynamic> map) {
this.id = map['id'];
this.name = map['name'];
this.imageurl = map['imageurl'];
}
关于sql - (SQFLite) 从 2 个连接表中检索数据并将结果查询转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57962686/