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

TYPO3 v11/v12自定义扩展删除文件时processCmdmap_deleteAction钩子失效

TYPO3 v11/v12自定义扩展钩子未触发问题求助

在TYPO3 v11/v12的自定义扩展中,已创建自定义钩子并在ext_localconf.php中完成声明,但从后端文件列表删除文件时,钩子的processCmdmap_deleteAction方法未执行,导致关联的子记录无法被删除。已确认数据库表和结构配置正确,问题聚焦在该钩子方法及声明环节。

钩子类代码

public function processCmdmap_deleteAction(
    string $table,
    int $recordId
): void {
    if ('sys_file_metadata' === $table) {
        $this->deleteRelatedChildren($recordId);
    }
}

/**
 * Delete related child records based on parent ID.
 */
public function deleteRelatedChildren(int $parentId): void
{
    $connection = GeneralUtility::makeInstance(ConnectionPool::class)
        ->getConnectionForTable(
            'tx_extensionName_domain_model_alternative_history'
        );

    $queryBuilder = $connection->createQueryBuilder();
    $queryBuilder
        ->delete('tx_extensionName_domain_model_alternative_history')
        ->where(
            $queryBuilder->expr()->eq(
                'sys_file_metadata',
                $queryBuilder->createNamedParameter(
                    $parentId,
                    \PDO::PARAM_INT
                )
            )
        );

    $queryBuilder->execute();
}

已完成的排查步骤

  • 检查ext_localconf.php配置:

    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass']['extensionName'] = extensionName\Backend\Hooks\MyCustomHook::class;

  • 对比TYPO3默认钩子的processCmdmap_deleteAction方法,确认该方法适用于文件删除场景
  • 钩子中的其他方法(如processDatamap_postProcessFieldArray)可正常执行,能更新自定义表记录
  • 查阅官方文档、Stack Overflow等资料未找到解决方案
  • 咨询AI工具未得到有效结论
  • 网络搜索未找到针对性解决办法

求助:为何TYPO3后端文件列表删除记录时,自定义钩子及processCmdmap_deleteAction方法无法运行?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:09:58