我是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
任何人都知道我做错了什么?
提前感谢您的帮助。
答案 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添加到项模型中的属性文档中。在以下文档中描述: