Mam: Listener który ma za zadanie usuwać cache obrazków ze starymi nazwami.
Mam edycja zdjęcia -> tylko edytujemy w formularzu: title
Obecnie w title jest: image1 - więc obrazek to image1.jpg
Teraz chcę zmienić nazwę na image2 i chcę image1 przekazać do Listener.
W entity dodałem sobie zmienna: $old_image;
Następnie w
@ORM/PreUpdate daję $this->old_image = $this->getImage(); //nazwa pliku starego
Kolejne w Listener odbieram tak:
public function preUpdate(LifecycleEventArgs $args) { $entity = $args->getEntity(); if($entity instanceof \Acme\Bundle\TestBundle\Entity\Test) { $entity->old_image; } }
Wszystko działa ale w $entity->old_image otrzymuję: image2, a powinno być image1.
W PreUpdate w entity mam dobrą wartość (image1)... Wiecie dlaczego tak jest?
ps. nie wiem ale poprzednich rzeczach mi to działało, a obecnie coś nie chce :/
Cześć.
Rozwiązałem problem.
Błąd polegał na tym, że odczytywałem ścieżkę przez:
public function getWebPath() { return null === $this->image ? null : $this->getUploadDir().'/'.$this->image; }
a powinno być:
public function getWebPath($name='') { if($name!='') return null === $name ? null : $this->getUploadDir().'/'.$name; return null === $this->image ? null : $this->getUploadDir().'/'.$this->image; }
żal...
