Directus中如何用或逻辑筛选发送者或接收者为当前用户的消息?
解决Directus消息列表筛选:获取当前用户作为发送者或接收者的消息
你当前的请求用&连接两个筛选条件,Directus默认会把它们当作AND逻辑处理——也就是只会返回同时满足「发送者是当前用户」和「接收者是当前用户」的消息,这显然不符合你要的「发送者OR接收者是当前用户」的需求。
要实现OR逻辑的筛选,你需要用到Directus的_or操作符,具体有两种写法:
方式1:URL分段式筛选
直接在URL中构建_or数组:
/items/messages?filter[_or][0][sender]=${user_id}&filter[_or][1][receiver]=${user_id}
方式2:JSON格式筛选(更直观)
把筛选条件写成JSON字符串,再传入URL(前端拼接时需对JSON字符串做URL编码):
/items/messages?filter={"_or":[{"sender":"${user_id}"},{"receiver":"${user_id}"}]}
这两种写法都会让接口返回所有「发送者是当前用户」或者「接收者是当前用户」的消息,比如当user_id为1时,会返回你示例中的两条消息,完全符合需求。
内容的提问来源于stack exchange,提问作者R.Almofleh
相关产品推荐
相关产品推荐

