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

Php Directus-用于在另一个集合中创建或更新项的示例钩子,php,directus,Php,Directus,我正在构建一个移动应用程序,它有一个显示文章链接的列表视图。该应用程序的内容由Directus提供支持 列表视图已被删除 title description (200 characters, no HTML) image 一篇文章 title content (html) image 为了保存API请求的大小,我将列表视图数据存储在名为articles\u list的集合中,并存储在名为articles的集合中 为了让Directus对作者保持直观,我需要Directus在文章集合中创建/更

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

列表视图已被删除

title
description (200 characters, no HTML)
image
一篇文章

title
content (html)
image
为了保存API请求的大小,我将列表视图数据存储在名为
articles\u list
的集合中,并存储在名为
articles
的集合中

为了让Directus对作者保持直观,我需要Directus在
文章
集合中创建/更新/删除项目时,自动在
文章
集合中创建/更新/删除项目

这两个集合存储的数据基本相同,除了
文章列表
具有
说明
而不是
内容
。删除HTML标记后,
description
字段包含
content
的前200个字符

我看过hooks文档,但不知道如何在不同的集合中创建新项目(
articles\u list
)。使用外部库(如ezyang/htmlpurifier)的最佳方式是什么?如何调试我的钩子


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

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

title
excerpt (/ description)
content (html)
image
然后,您可以使用
字段
参数仅请求概览页面上的
标题
摘录
,以节省一些带宽/延迟:

/items/articles?fields=标题、摘录


它还为您节省了使两个集合保持同步的麻烦,并防止了必须存储重复数据这是钩子内调试的一个示例


您的问题就在这里,如果您想从hook更改另一个集合字段,更好的方法是使用ZendDB

谢谢!但我仍然需要删除HTML标签并修剪摘录,这需要HTML净化器吗?您还可以回答调试钩子的最佳方法吗?不,我建议在摘录的主HTML旁边有一个单独的文本区域。这样,您就不必进行任何HTML清理(并且您还可以从HTML中单独调整摘录。调试钩子与调试任何其他PHP片段是一样的。我自己不是PHP开发人员,但我倾向于var_dump()和die()我的胜利之路我想如果摘录是自动从内容中提取出来的话,对作者来说会更容易。但是在这个阶段我可能太难实现了。我认为这可能是最好的方法,我在使用Laravel时也做了类似的事情,但由于挂钩发生在后台,它们通常不会输出到浏览器窗口是吗?