过滤条件的设计

阅读本篇前,建议先熟悉《数据的读取与显示》

在较多的场景下,我们需要对读取过来的数据进行筛选过滤,找出符合条件的数据来进行展示,此时就需要在读取数据时设置过滤条件(例如 Excel 中的筛选条件)。

如何在 Zion 中设置过滤条件

设置过滤条件的前提是需要读取远程数据,在 Zion 中能够读取远程数据(数据库数据)的有“页面”本身和“列表类组件”。

例子: 班级表中存储着所有班级同学的个人信息,此时我们需要读取的是班级所有男同学的信息,那么就需要在读取数据的时候设置“性别 等于 男”的条件,来读取所有男同学的信息。

上述案例配置方法: 在页面中添加一个列表组件,然后在其内容中将数据源切换为远程数据,选择数据表为“班级表”,点击「过滤」旁的「+」号按钮添加过滤条件,选择“班级表”中的【性别】字段,选择「等于」的比较运算符,在比较的对象的输入框中输入比较数据“男”,即完成了性别为男生的过滤条件设置,此时列表中请求过来就是性别为男的数据。

Tips: 远程数据中的过滤条件从上往下默认都是“与”的关系,也就是在多个条件下,这多个条件是并列的。

特殊过滤类型

空值过滤

过滤条件选等于空值时(无论是直接等于逻辑数据-空值,还是等于某个参数,而参数为空),Zion 会忽视这条过滤条件,而不是过滤出为空的数据。 如果要配置判断某个数据为空或者非空的条件,那么直接使用比较运算符中的「为空」、「非空」即可。

“不等于”过滤

数据 A 不等于 数据 B,其实是“数据 A 非空且不等于数据 B ” 也就是说,“不等于”的过滤,会默认附带非空判断,因此在做此类过滤时务必注意字段值为空的情况。

一对多关系表的过滤

即关系为1的列表中,根据关系为多的表中的字段进行过滤

场景:班级表与学生表有着一对多关系,在请求班级表的时,可以通过关系引用学生表中的字段来配置过滤条件

例子:如何过滤出“有叫小明的学生的班级”的班级列表:列表的数据源请求班级表,过滤条件则设置为学生表中的学生姓名等于小明即可。

数据的二次过滤

场景:想要知道商品详情页中,某人是否对某个商品点赞,商品点赞表通过与账户表、商品表建立一对多关系后,商品点赞表中会有账户id以及商品id 实现方式1:为页面配置远程数据,请求商品点赞表,其过滤条件为账户id等于当前用户id,商品id等于远程数据的商品id,取消限额,在未点赞的条件式子容器中可以利用请求的结果等于0,说没有点赞记录,则显示灰色的点赞

img img

实现方式2:

  • 为页面配置远程数据,请求商品表,过滤条件为商品的id,限额为1,说明请求了唯一的商品
  • 在未点赞的条件子容器中配置该商品在点赞表中的数量等于0的条件,此时,会请求所有人对于这个商品的点赞数量
  • 由于,我们要比较的是当前用户对于这个商品的点赞数量是否为0,所以需要对上一步请求回来的结果进行二次过滤,点击上一步配置的该商品在点赞表中的数据,添加点赞表中的账户ID等于当前用户ID的条件
  • 如果拿到数据,说明已经点赞了,如果数量为0,说明没有点赞记录,显示灰色点赞
img img

Tips: 通过点击对比条件中的数据进行过滤,其过滤条件只能是跟远程数据所请求的表相关联的数据表的字段,即上述例子中,过滤条件只能是点赞表的字段,而不能是商品表的字段

默认排序

在没有任何排序字段的情况下,会默认按照id字段降序排列

Copyright © FunctorZ 2024 all right reserved修订时间: 2024-10-22 12:06:36

results matching ""

    No results matching ""