如何在飞镖中查询列表列表?

时间:2020-02-01 07:07:37

标签: flutter dart

我从数据库获得数据。

final List<SubCategoryModel> model;

我的模型类如下:

class SubCategoryModel{
  final String categoryName;
  final String subCategoryName;
  final List<String> searchCategory;
}

用户可以搜索categoryNamesubCategoryName或任何其他常用名称。我将常见的搜索名称存储在searchCategory中。 searchCategory是一个数组。

我不理解数据库中的查询searchCategory。目前,我使用了这个:

  final result =
        model.where((a) => a.subCategoryName.toLowerCase().contains(query)
        || a.categoryName.toLowerCase().contains(query));

小工具

 ListView(
            children: result
                .map<InkWell>((a) => InkWell(...

示例:

CategoryName =主页

SubCategoryName =厨房

searchCategory = [家庭,服务,Varanda,浴室]

需要从以上三个字段进行查询

1 个答案:

答案 0 :(得分:1)

创建一种检查SearchCategory列表的方法

  bool checkList(SubCategoryModel cat,String q){
    for(int i = 0; i < cat. searchCategory.length;i++){
      if(cat. searchCategory[i].toLowerCase().contains(q))
        return true;
    }
    return false;
  }

像这样更改查询

 final result = model.where((a) =>
        a.subCategoryName.toLowerCase().contains(query) ||
        a.categoryName.toLowerCase().contains(query) || checkList(a,query));