Directus-用于在另一个集合中创建或更新项目的示例挂钩

时间:2019-03-04 13:10:08

标签: php directus

我正在构建一个具有列表视图的移动应用程序,该列表视图显示文章的链接。该应用程序的内容由Directus提供支持。

列表视图具有

title
description (200 characters, no HTML)
image

文章有

title
content (html)
image

为了节省API请求的大小,我将列表视图数据存储在名为articles_list的集合中,并将文章存储在名为articles的集合中。

为了使Directus对作者直观,我需要在articles_list集合中创建/更新/删除项目时自动在articles集合中创建/更新/删除项目。

两个集合存储的数据基本相同,除了articles_list具有description而不是content之外。删除HTML标签后,description字段的前content个字符为200个。

我看了钩子文档,但不确定如何在其他集合(articles_list)中创建新项目。使用外部库(例如ezyang / htmlpurifier)的最佳方法是什么?我该如何调试钩子?

任何帮助将不胜感激。我仍在学习了解Directus的工作原理。

2 个答案:

答案 0 :(得分:2)

我建议创建一个包含4个字段的集合:

title
excerpt (/ description)
content (html)
image

然后,您可以使用fields参数仅在概览页面上请求titleexcerpt,以节省一些带宽/延迟:

/items/articles?fields=title,excerpt

这也免除了您使两个集合保持同步的麻烦,并且避免了必须存储重复数据

答案 1 :(得分:0)

这是在钩子中进行调试的示例 enter image description here

您的问题在这里,如果您想从挂钩中更改另一个集合字段,更好的方法是使用ZendDB Example filter hook to update item with related field