我刚刚开始开发一个新的扩展,其中包含一个图像。如果我使用存储库中的添加功能,图像将被正确保存。但是当我使用编辑控制器功能更改图像文件并使用存储库更新功能时,旧图像不会被覆盖,但会添加一个额外的图像。我还尝试使用删除/添加的组合而不是更新。结果是一样的。这个我绝对不明白!我正在使用拼写错误3 8.7.9。并使用了扩展生成器,即 git 中的版本。
谁能给我一个提示,问题可能在哪里?
删除第一个FAL object
。您可以像下面这样执行此操作。
在控制器文件中 创建用于删除旧图像 Fal 对象的函数。
/**
* remove ImageObject
*
* @param vendorExtensionKeyDomainModelModelname $object
* @return void
*/
public function removeImageObject(vendorExtensionKeyDomainModelModelname $object) {
if(!empty($object->getImage())){
$resourceFactory = GeneralUtility::makeInstance('TYPO3\CMS\Core\Resource\ResourceFactory');
$fileReferenceObject = $resourceFactory->getFileReferenceObject($events->getImage()->getUid());
$fileWasDeleted = $fileReferenceObject->getOriginalFile()->delete();
}
}
我知道,我必须先删除文件引用(sys_file_reference(。从我的Recipe类(\TYPO3\CMS\Extbase\DomainObject\AbstractEntity(中,我已经获得了filereference对象。因此,我应该能够使用它来删除它。我添加了以下功能。
/**
* Deletes the recipePic Filereference
*
* @param TYPO3CMSExtbaseDomainModelFileReference $recipePic
* @return void
*/
public function delRecipePic(TYPO3CMSExtbaseDomainModelFileReference $recipePic)
{
$this->recipePic->getOriginalFile()->delete();
$this->recipePic->delete();
}
但是这两个调用都不起作用。我做错了什么?