TYPO3 IRRE 1:n删除子记录不起作用

时间:2017-07-25 07:49:34

标签: typo3

我是TYPO3的新手,我没有太多的经验。我正在使用官方文档。 TYPO3版本7.6 LTS。

我创建了1:n关系。几乎一切正常,子项目保存和加载没有任何问题。我有删除问题。当我删除父实体时,其子项被删除,这真是一种痛苦。

这是两个表的TCA配置(我删除了不相关的列):

.erroredcolumn { border: 1px solid red !important; top:1px; } 父表:

tx_myext_domain_model_item

<?php $ll = 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:'; return [ 'ctrl' => [ 'title' => $ll . 'basket.item', 'label' => 'title', 'tstamp' => 'updated_at', 'crdate' => 'created_at', 'cruser_id' => 'user_id' ], 'interface' => [ 'showRecordFieldList' => '' ], 'columns' => [ 'pid' => [ 'label' => $ll . 'pid', 'config' => [ 'type' => 'passthrough', ] ], // ... 'documents' => [ 'label' => $ll . 'item.documents', 'config' => [ 'readOnly' => 1, 'type' => 'inline', 'foreign_table' => 'tx_myext_domain_model_document', 'foreign_field' => 'item_id', 'behaviour' => [ 'enableCascadingDelete' => 1, ] ], ] ] ]; 子表:

tx_myext_domain_model_document

任何人都知道我做错了什么?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您告诉TCA查找字段&#39; item_id&#39;对于关系

'foreign_field' => 'item_id',

但此字段用于项目的ID。 在这个字段中,typo3应该存储来自父元素的uid。 尝试设置&#39; item_id&#39; passthrough上的字段并创建一个新元素并检查数据库中是否存在来自父项的uid。如果是这种情况,那么cascadeDelete应该工作。 enableCascadingDelete默认为:)

编辑:
如果您执行代码中的内容并使用extbase repositorys删除对象,则需要将@cascade remove添加到项模型中的属性文档中。在以下文档中描述:

https://docs.typo3.org/typo3cms/ExtbaseFluidBook/5-Domain/2-implementing-the-domain-model.html#implementing-relationships-between-domain-objects