【发布时间】:2022-12-01 15:53:41
【问题描述】:
我有用户表并且它与 CustomerOrders 有数组关系我需要根据 CustomerOrders completion_date 过滤用户。它有点工作但是当没有选择日期过滤器时我需要显示所有用户,即使是那些没有 CustomerOrder 如果我添加条件结束在空对象 {} 中,它仍然被认为是在查看那个 CustomerOrder,我仍然得到所有拥有 CustomerOrder 的用户。
我的问题是如何在输入为空时完全删除客户订单过滤器?
变量
variables: {
order_byUsers: { creationDate: 'desc' },
whereUsers: {
deleted_at: { _is_null: true }
// CustomerOrders:
// fromDate && toDate
// ? {
// completion_date: {
// _gte: fromDate,
// _lte: toDate
// }
// }
// : {}
},
whereCustomerOrders: {
completion_date:
fromDate && toDate
? {
_gte: fromDate,
_lte: toDate
}
: {}
},
offsetUsers: state.pageSize * state.page,
limitUsers: state.pageSize
}
询问
query GetUsersAnalysisGqlQuery(
$whereUsers: User_bool_exp
$whereCustomerOrders: CustomerOrder_bool_exp
$order_byUsers: [User_order_by!]
$limitUsers: Int
$offsetUsers: Int
) {
User(
where: $whereUsers
order_by: $order_byUsers
limit: $limitUsers
offset: $offsetUsers
) {
id
nameSurname
email
phone
description
blocked
CustomerOrders(where: $whereCustomerOrders) {
completion_date
}
CustomerOrderData {
order_count
amount
}
}
User_aggregate(where: $whereUsers) {
aggregate {
count
}
}
}
我还尝试为 CustomerOrders 添加 where 变量,但我想我做错了什么。
【问题讨论】: