如何使用 SaveToDatabaseFinisher 和 TYPO3 EXT:Form 存储当前页面的 pid

问题描述

我想使用 SavetoDatabaseFinisher 将表单数据存储在数据库中。数据应该分配给页面,表单插件所在的页面,我不知道如何找到当前页面pid。在我发现的每个例子中,pid 总是硬编码在 yaml 文件中。

我尝试了 {pid}{__pid},但没有成功。那么如何获取当前页面的 id (pid) 以将其存储在数据库中(在 TYPO3 8.7 中)?还是只能在以后的 T3 版本中实现?

  ...
  databasecolumnmappings:
    pid:
      value: '{__pid}'
    tstamp:
      value: '{__currentTimestamp}'
  elements:
    ...

解决方法

由于运行时引用目前除了表单值之外不可扩展,因此您需要添加一个自定义完成器来确定当前页面 ID 和 stores it as finisher variable。然后您可以在 SaveToDatabase 修整器配置中访问此变量。