matin
matin

Reputation: 313

TYPO3 9.5 delete sys_file_reference Image

I have extension where user can upload/edit/delete images in frontend. Everything works fine, but I am not able to delete images. I have following code, but seems not working:

$data = array();
$data['sys_file_reference'][123]['delete'] = 1;

/** @var DataHandler $dataHandler */
$dataHandler = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
$dataHandler->start($data, array());
$dataHandler->process_datamap();

What is correct datamapper for deleting fal images?

Upvotes: 1

Views: 932

Answers (2)

marcellosendos
marcellosendos

Reputation: 21

Using the second parameter ($cmd) of the start()-Method should do the trick.

$cmd['sys_file_reference'][$uid]['delete'] = 1;
/** @var DataHandler $dataHandler */
$dataHandler = GeneralUtility::makeInstance(\TYPO3\CMS\Core\DataHandling\DataHandler:class);
$dataHandler->start([], $cmd);
$dataHandler->admin = true; // Use this line with caution!
$dataHandler->process_cmdmap();

Upvotes: 2

matin
matin

Reputation: 313

I solved it by using queryBuilder

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_file_reference');
$queryBuilder
->update('sys_file_reference')
->where(
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($dat->getLogo()->getUid()))
)
->set('deleted', '1')
->execute();

Upvotes: 0

Related Questions