L'avantage de cette façon ce que tu n'as pas à le gérer partout.
Ca se gère dans l'entité :
Si tu reprends mon lien :
- il faut rajouter l'indication que ton entité utilise les callback avec
* @ORM\HasLifecycleCallbacks()
- tu rajoutes une méthode dans ton entité avec l'indication suivante :
1 2 3 4
|
/**
* @ORM\PostRemove()
*/ |
dans la fonction tu gère la suppression de ton fichier. Sur le projet ou je suis il le gère de la façon suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
/**
* @ORM\PreRemove()
*/
public function storeFilenameForRemove()
{
$this->temp = << recupération du chemin + nom du fichier (il est stocké avec l'id)
}
/**
* @ORM\PostRemove()
*/
public function removeUpload()
{
if (isset($this->temp))
{
if (is_file($this->temp)){
unlink($this->temp); << suppression du fichier s'il existe
}
}
} |
Et grâce à ça, quand tu feras un remove sur ton entité automatique la méthode storeFilenameForRemove et removeUpload serons appelées.
Partager