Project

General

Profile

Actions

Bug #101522

open

\TYPO3\CMS\Core\Database\RelationHandler::purgeItemArray only works with workspaces enabled

Added by Alexander Schnitzler 9 months ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
DataHandler aka TCEmain
Target version:
-
Start date:
2023-08-01
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

I have the following situation: I want to use the datahandler to delete records in the backend via command map delete.

I have table a, table b and table a_b_mm:

uid name
1 A
uid name
1 B
uid_local uid_foreign
1 1

When deleting either record A or B with uid 1, I expect the data handler to remove the entry in the mm table.

\TYPO3\CMS\Core\DataHandling\DataHandler::deleteRecord() calls
\TYPO3\CMS\Core\DataHandling\DataHandler::deleteRecord_procFields()

which states:

     * Before a record is deleted, check if it has references such as inline type or MM references.
     * If so, set these child records also to be deleted.

Therefore, I was under the impression that mm entries would be removed but it seems that the RelationHandler only removes the identified rows (\TYPO3\CMS\Core\Database\RelationHandler::purgeItemArrayHandler()) if workspaces are enabled.
However, I would expect the DataHandler to clean up also records without workspaces enabled.

I checked if the behavior is the same in the backend and it is. Deleting a record via list module does not remove the associated mm entry.

No data to display

Actions

Also available in: Atom PDF