2017-07-25 34 views
0

我是TYPO3的新手,我沒有太多的經驗。我正在處理官方文檔。 TYPO3版本7.6 LTS。TYPO3 IRRE 1:n刪除子記錄不起作用

我創建了1:n關係。幾乎一切正常,子項保存並加載沒有任何問題。不過,我有刪除問題。當我刪除父母實體時,其子女不是刪除,這是一個真正的痛苦。

下面是兩個表我的TCA配置(我已刪除無關列):

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子表:


<?php 

$ll = 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:'; 

return [ 
    'ctrl' => [ 
     'title' => $ll . 'document', 
     'label' => 'item_id', 
     'tstamp' => 'updated_at', 
     'crdate' => 'created_at', 
    ], 
    'interface' => [ 
     'showRecordFieldList' => '' 
    ], 
    'columns' => [ 
     'pid' => [ 
      'label' => $ll . 'pid', 
      'config' => [ 
       'type' => 'passthrough', 
      ] 
     ],  
     // ... 
     'item_id' => [ 
      'label' => $ll . 'item.id', 
      'config' => [ 
       'type' => 'input', 
       'size' => '10', 
       'eval' => 'int', 
      ], 
     ], 
    ], 
]; 

任何人有一個想法我做錯了什麼?

感謝您的幫助。

回答

1

你是在告訴TCA來查找場「ITEM_ID」的關係

'foreign_field' => 'item_id', 

但這字段用於該項目的ID。 在此字段中,typo3應該存儲來自父元素的uid。 嘗試在passthrough上設置'item_id'字段並創建一個新元素,並檢查數據庫是否在字段中存儲了來自父項的uid。如果是這種情況,cascadeDelete應該可以工作。 enableCascadingDelete是每默認情況下:)

編輯:
如果你做你的代碼裏面的東西,你用extbase repositorys刪除您需要添加@cascade刪除,在您的項目模型的屬性文件的對象。下Docs描述:

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

+0

的事情是,只有通過代碼添加文件的項目。我可以看到來自父表格計數器的「文檔」字段表現正確。我不希望通過管理面板進行編輯。 – Ventus

+0

如果您使用extbase repositorys刪除代碼中的對象,則需要將@cascade remove添加到項目模型中的屬性文檔。 在文檔中描述了她: https://docs.typo3.org/typo3cms/ExtbaseFluidBook/5-Domain/2-implementing-the-domain-model.html – Xippo

+0

是的!謝謝@Xippo!我錯過了@ @ cascade'註釋!我不知道我是如何錯過它的。請用這個建議更新你的問題,我會接受它:) – Ventus