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
相关产品推荐
相关产品推荐

