答案 0 :(得分:1)
你是对的我在实体中的代码上做了一个var转储......
/**
* @ORM\PostRemove
*/
public function removeUpload()
{
if(file_exists($file)) {
if ($file = $this->getAbsolutePath()) {
unlink($file);
}
}
}
如果文件存在,$ file显示一个空变量。在上传中,它将变量保存为$ logo
我将代码更改为以下
/**
* @ORM\PostRemove
*/
public function removeUpload() {
// ** Original Code used file but logo has the name in it.
if(file_exists($this->getAbsolutePath())) {
if ($this->getUploadRootDir() . $this->logo = $this->getAbsolutePath()) {
unlink($this->logo);
}
}
}
现在可以正确删除文件。谢谢你们俩。
答案 1 :(得分:0)
在删除操作中,您必须手动删除该文件。我假设您将文件路径存储在数据库中,因此这应该相对容易。
$path = ....//query db to get the path to the file
if($path){
unlink($path);
}
//now you can delete the record in the database
请参阅php docs删除文件
答案 2 :(得分:0)
您可能正在搜索的是Doctrine2 Lifecycles。只需向您的实体添加方法:
/**
* @ORM\PreRemove
*/
public function deleteImage()
{
// unlink your image and what not.
}
另外,请不要忘记实体类的@ORM\HasLifecycleCallbacks()
注释。