You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal站点Webform提交数据归档后自动清理功能实现咨询

Drupal Webform提交数据归档+清理实现方案

自动归档+原生purge联动方案(推荐)

Drupal 8及以上版本的Webform模块提供了前置删除钩子,可在原生purge触发删除前自动执行归档逻辑,不需要修改核心 purge 规则:

  1. 在你的自定义模块中实现hook_webform_submission_predelete钩子,示例代码如下:
/**
 * Implements hook_webform_submission_predelete().
 */
function your_custom_module_webform_submission_predelete(\Drupal\webform\Entity\WebformSubmission $submission) {
  // 提取全量提交数据
  $submission_data = $submission->toArray();
  // 归档逻辑可自定义,以下为写入自定义归档表示例
  \Drupal::database()->insert('custom_webform_archive')
    ->fields([
      'submission_id' => $submission->id(),
      'webform_machine_name' => $submission->getWebform()->id(),
      'data' => serialize($submission_data),
      'created_time' => $submission->getCreatedTime(),
    ])
    ->execute();
  // 若需归档为CSV文件,可调用WebformSubmissionExporter服务生成文件写入指定目录
}
  1. 配置原生purge规则:
  • 进入对应Webform的管理页,依次点击「设置」→「提交」选项卡
  • 找到提交清除规则区块,开启自动清除,按需设置提交保留时长、触发条件即可
  • 后续purge规则触发删除提交前,会自动执行上述钩子完成归档

低代码方案(无需写自定义代码)

你可以直接安装Webform Archive贡献模块,模块默认实现了归档能力,会将符合purge条件的提交标记为归档状态存储,不会直接物理删除,你可以定期导出归档数据后再批量清空归档记录即可,支持和Webform原生purge规则无缝联动。

一次性手动归档清理操作

如果仅需要做单次批量归档清理,不需要自动触发:

  • 进入对应Webform的「结果」管理页,批量选中需要清理的提交记录
  • 选择下载操作,导出为CSV/Excel格式完成归档
  • 再选择删除操作批量清理已归档的提交即可

内容的提问来源于stack exchange,提问作者Arthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:54:01