【发布时间】:2019-07-05 06:45:21
【问题描述】:
我有一些产品的 TYPO3 扩展,它使用内联记录将文档组添加到产品中。删除产品还应删除文档组(内联记录)。
文档说behaviour.enableCascadingDelete 默认设置为true,但不会删除文档组。在 TCA 中设置此值没有任何区别。
'documentgroups' => [
'exclude' => 1,
'label' => $ll . ".documentgroups",
'config' => [
'type' => 'inline',
'allowed' => 'tx_product_domain_model_docgroup',
'behaviour' => [
'allowLanguageSynchronization' => true,
'enableCascadingDelete' => true,
],
'foreign_table' => 'tx_product_domain_model_docgroup',
'MM' => 'tx_product_mm',
'MM_match_fields' => [
'tablenames' => 'tx_product_domain_model_docgroup',
'fieldname' => 'documentgroups',
'table_local' => $tableName,
],
'foreign_sortby' => 'sorting',
'minitems' => 0,
'maxitems' => 99,
]
],
【问题讨论】:
-
那可能是因为你使用的是MM关系。使用 MM 从技术上讲,您的 docgroup 记录可能会反向引用其他记录,因此删除它们可能不合理。不过只是猜测。
-
嗨@Nitori,经过一些调试,我可以确认你的猜测。如果是 MM 关系级联删除将不起作用。这可以通过查看
\TYPO3\CMS\Core\DataHandling\DataHandler->deleteRecord_procBasedOnFieldType和 ``\TYPO3\CMS\Core\DataHandling\DataHandler->getInlineFieldType` 来验证