Hello...
Dans un module, je permet d'uploader une image à la place d'une image déjà existante.
J'ai mis :
$fileBeingUploaded = $data['file'];
if(null !== $fileBeingUploaded){
$fileCreateOrUpdateEvent = new FileCreateOrUpdateEvent(1);
$fileCreateOrUpdateEvent->setModel($masonryBrick);
$fileCreateOrUpdateEvent->setUploadedFile($fileBeingUploaded);
$eventDispatcher->dispatch(
$fileCreateOrUpdateEvent,
TheliaEvents::IMAGE_UPDATE
);
}
qui déclenche dans BaseCachedFile.php, la fonction suivante
public function updateFile(FileCreateOrUpdateEvent $event): void
{
// Copy and save file
if ($event->getUploadedFile()) {
// Remove old picture file from file storage
$url = $event->getModel()->getUploadDir().'/'.$event->getOldModel()->getFile();
unlink(str_replace('..', '', $url));
$newUploadedFile = $this->fileManager->copyUploadedFile($event->getModel(), $event->getUploadedFile());
$event->setUploadedFile($newUploadedFile);
}
// Update image modifications
$event->getModel()->save();
$event->setModel($event->getModel());
}
Mais ça me sort une erreur :
Call to a member function getFile() on array
En effet, getOldModel() retourne un array vide...
Last edited by Elyos (02-05-2024 18:27:44)