diff --git a/src/Entity/ImageSliderLang.php b/src/Entity/ImageSliderLang.php index 5c9ba5e..6332a3b 100644 --- a/src/Entity/ImageSliderLang.php +++ b/src/Entity/ImageSliderLang.php @@ -179,9 +179,9 @@ public function setDescription(string $description): ImageSliderLang } /** - * @return string + * @return string|null */ - public function getImage(): string + public function getImage(): ?string { return $this->image; } @@ -199,9 +199,9 @@ public function setImage(string $image): ImageSliderLang } /** - * @return string + * @return string|null */ - public function getImageMobile(): string + public function getImageMobile(): ?string { return $this->imageMobile; } diff --git a/src/Form/DataHandler/ImageSliderFormDataHandler.php b/src/Form/DataHandler/ImageSliderFormDataHandler.php index ef64367..273c22a 100644 --- a/src/Form/DataHandler/ImageSliderFormDataHandler.php +++ b/src/Form/DataHandler/ImageSliderFormDataHandler.php @@ -126,8 +126,12 @@ public function update($id, array $data): int $langId = (int) $language['id_lang']; $imageSliderLang = $imageSlide->getImageSliderLangByLangId($langId); + $newImageSliderLang = false; if (null === $imageSliderLang) { - continue; + $imageSliderLang = new ImageSliderLang(); + $lang = $this->langRepository->findOneById($langId); + $imageSliderLang->setLang($lang); + $newImageSliderLang = true; } $imageSliderLang @@ -137,14 +141,22 @@ public function update($id, array $data): int ->setDescription($data['description'][$langId] ?? ''); if (!empty($data['image'][$langId])) { - $this->eraseFile($imageSliderLang->getImage()); + if ($imageSliderLang->getImage() !== null) { + $this->eraseFile($imageSliderLang->getImage()); + } $imageSliderLang->setImage($this->uploadFile($data['image'][$langId])); } if (!empty($data['image_mobile'][$langId])) { - $this->eraseFile($imageSliderLang->getImageMobile()); + if ($imageSliderLang->getImage() !== null) { + $this->eraseFile($imageSliderLang->getImageMobile()); + } $imageSliderLang->setImageMobile($this->uploadFile($data['image_mobile'][$langId])); } + + if ($newImageSliderLang) { + $imageSlide->addImageSliderLang($imageSliderLang); + } } $this->entityManager->flush(); diff --git a/src/Installer/ImageSliderInstaller.php b/src/Installer/ImageSliderInstaller.php index 5d5756c..41395fc 100644 --- a/src/Installer/ImageSliderInstaller.php +++ b/src/Installer/ImageSliderInstaller.php @@ -82,9 +82,9 @@ public function createTables(): bool ->setData($databaseData) ->buildQuery(); - return $createTableAction->execute() && - $addColumnsAction->execute() && - $modifyColumnsAction->execute(); + return $createTableAction->execute() + && $addColumnsAction->execute() + && $modifyColumnsAction->execute(); } /**