过滤器 filters

过滤器允许您有条件地从集合中选择项目。 用例包括自定义项目搜索结果,限制特定用户或角色的项目访问权限,使用 Insights 模块构建仪表板分析等等。

过滤器

有两个过滤器文档
此页面是使用过滤器的非技术指南。 有关更多技术信息,请参阅 过滤规则

工作方式

假设知识 过滤器使用起来很直观,但随着复杂性的增加变得非常微妙。 为了有效地使用过滤器,您需要了解被过滤的字段 (aka data model) 以及任何相关的 Users, Roles and Permissions

一个基本过滤器由 3 部分组成:一个来自被过滤集合的 Field,一个逻辑 Operator,以及一些指定的 Value 来过滤 在每个项目的字段中。

  1. 点击filter_list“添加过滤器”
  2. 选择要过滤的字段。
  3. 根据需要选择操作员。
  4. 定义要过滤的值。

从这里,您可以一次设置多个过滤器,按相关集合中的字段过滤,使用动态变量设置值,以及应用AND /OR 组

运算符
字段类型将确定可以在其上使用的运算符类型。 事实上,有些字段根本无法过滤(在 Unfilterable Fields 中了解更多信息)。 选择字段后,将自动显示允许的操作员。 在技术性更强的 Filter Rules 文档中可以找到详尽的 Operator 列表及其功能。

AND/OR Groups

AND 组提供了过滤满足_所有几个条件_的项目的选项。 另一方面,OR组过滤满足 多个条件中的任何一个 的项目。

AND/OR Groups

  1. 点击“添加过滤器”。
  2. 单击下拉菜单顶部的“和/或组”。
  3. 单击 AND/OR 文本进行切换:
    • AND - 选择满足每一个标准的项目。
    • OR - 选择满足多个标准之一的项目。
  4. 再次单击“添加过滤器”。
  5. 根据需要配置字段、运算符和值。
  6. 单击并按住drag_indicator 以拖动过滤器并将其嵌套在AND/OR 组下。

为什么我们需要 AND 组?
过滤器实际上默认为“AND”自动分组行为。 但是,当过滤器嵌套在 OR 组中时,它们当然会切换到“或”组行为。 因此,如果您希望在 OR 组内满足多个条件,则需要一个 AND 组。

动态变量

以下视频展示了如何过滤过去 60 天内撰写的博客文章。

Directus 中内置了以下动态变量以简化过滤:$CURRENT_USER$CURRENT_ROLE$NOW$NOW(<adjustment>)。 有关详细信息,请参阅 过滤规则 中的动态变量部分。

按相关集合过滤

您可能需要在一个集合上运行过滤器_基于另一个相关集合中的信息_。以下是一些可能发生这种情况的示例:

  • 也写过剧本的书籍作者(过滤“作者”,使用“剧本”)。
  • 具有 5 星客户评论的产品(过滤器“产品”,使用“评论”)。
  • 在过去 12 个月内有活跃用户登录的帐户(过滤“帐户”,使用“登录”)。

这可以跨越任意数量的相关链接集合。例如,您可以过滤购买摇滚歌曲的客户,其中 customersgenres 集合通过 customers -> invoices -> invoice-items -> tracks -> genres 链接

您会注意到关系字段旁边的 chevron_right 图标。当您单击任何 Alias 字段时,该关联集合的所有字段都会弹出。如果选择这些字段之一,则可以按相关集合中的字段值对当前集合运行过滤器。

以下是有关如何按其他集合中的字段过滤的分步说明:

  1. 点击“添加过滤器”。
  2. 单击所需的关系字段。 这将弹出并显示相关的集合字段。
  3. 从该相关集合中选择一个字段。
  4. 根据需要设置运算符和值。

不可过滤的字段

Unfilterable Fields

并非所有字段都可以过滤。 如上文按相关集合过滤中所见,别名字段不能被过滤; 相反,他们提供了一个下拉菜单来访问相关集合中的字段。 此外,“Presentation”和“Group”字段根本无法过滤,也不会作为选项出现在过滤器中。

可扩展性选项

Directus Core 是完全开源、模块化和可扩展的。 扩展允许您扩展或修改 Directus 的任何部分以满足您的需要。 这里有一些很好的资源可以帮助您开始这条道路。

从事企业项目并希望外包或财务赞助 Shares 扩展的开发? 联系我们的团队

更多帮助

正在为您的非企业项目寻找技术支持? 在我们不断发展的 Discord 社区 中与数千名工程师聊天