有两个过滤器文档
此页面是使用过滤器的非技术指南。 有关更多技术信息,请参阅 过滤规则。
工作方式
假设知识 过滤器使用起来很直观,但随着复杂性的增加变得非常微妙。 为了有效地使用过滤器,您需要了解被过滤的字段 (aka data model) 以及任何相关的 Users, Roles and Permissions。
一个基本过滤器由 3 部分组成:一个来自被过滤集合的 Field,一个逻辑 Operator,以及一些指定的 Value 来过滤 在每个项目的字段中。
- 点击filter_list或 “添加过滤器”。
- 选择要过滤的字段。
- 根据需要选择操作员。
- 定义要过滤的值。
从这里,您可以一次设置多个过滤器,按相关集合中的字段过滤,使用动态变量设置值,以及应用AND /OR 组。
运算符
字段类型将确定可以在其上使用的运算符类型。 事实上,有些字段根本无法过滤(在 Unfilterable Fields 中了解更多信息)。 选择字段后,将自动显示允许的操作员。 在技术性更强的 Filter Rules 文档中可以找到详尽的 Operator 列表及其功能。
AND/OR Groups
AND
组提供了过滤满足_所有几个条件_的项目的选项。 另一方面,OR
组过滤满足 多个条件中的任何一个 的项目。
- 点击“添加过滤器”。
- 单击下拉菜单顶部的“和/或组”。
- 单击 AND/OR 文本进行切换:
AND
- 选择满足每一个标准的项目。OR
- 选择满足多个标准之一的项目。
- 再次单击“添加过滤器”。
- 根据需要配置字段、运算符和值。
- 单击并按住drag_indicator 以拖动过滤器并将其嵌套在AND/OR 组下。
为什么我们需要 AND 组?
过滤器实际上默认为“AND”自动分组行为。 但是,当过滤器嵌套在 OR 组中时,它们当然会切换到“或”组行为。 因此,如果您希望在 OR 组内满足多个条件,则需要一个 AND 组。
动态变量
以下视频展示了如何过滤过去 60 天内撰写的博客文章。
Directus 中内置了以下动态变量以简化过滤:$CURRENT_USER
、$CURRENT_ROLE
、$NOW
和 $NOW(<adjustment>)
。 有关详细信息,请参阅 过滤规则 中的动态变量部分。
按相关集合过滤
您可能需要在一个集合上运行过滤器_基于另一个相关集合中的信息_。以下是一些可能发生这种情况的示例:
- 也写过剧本的书籍作者(过滤“作者”,使用“剧本”)。
- 具有 5 星客户评论的产品(过滤器“产品”,使用“评论”)。
- 在过去 12 个月内有活跃用户登录的帐户(过滤“帐户”,使用“登录”)。
这可以跨越任意数量的相关链接集合。例如,您可以过滤购买摇滚歌曲的客户,其中 customers
和 genres
集合通过 customers
-> invoices
-> invoice-items
-> tracks
-> genres 链接
。
您会注意到关系字段旁边的 chevron_right 图标。当您单击任何 Alias 字段时,该关联集合的所有字段都会弹出。如果选择这些字段之一,则可以按相关集合中的字段值对当前集合运行过滤器。
以下是有关如何按其他集合中的字段过滤的分步说明:
- 点击“添加过滤器”。
- 单击所需的关系字段。 这将弹出并显示相关的集合字段。
- 从该相关集合中选择一个字段。
- 根据需要设置运算符和值。
不可过滤的字段
并非所有字段都可以过滤。 如上文按相关集合过滤中所见,别名字段不能被过滤; 相反,他们提供了一个下拉菜单来访问相关集合中的字段。 此外,“Presentation”和“Group”字段根本无法过滤,也不会作为选项出现在过滤器中。
可扩展性选项
Directus Core 是完全开源、模块化和可扩展的。 扩展允许您扩展或修改 Directus 的任何部分以满足您的需要。 这里有一些很好的资源可以帮助您开始这条道路。
- Extensions > Introduction
- Extensions > Creating Extensions
- Contributing > Introduction
- Contributing > Codebase Overview
从事企业项目并希望外包或财务赞助 Shares 扩展的开发? 联系我们的团队
更多帮助
正在为您的非企业项目寻找技术支持? 在我们不断发展的 Discord 社区 中与数千名工程师聊天