发布
社区首页 >问答首页 >删除数据库中的图像删除symfony2

删除数据库中的图像删除symfony2
EN

Stack Overflow用户
提问于 2013-11-15 20:32:45
回答 3查看 2.1K关注 0票数 0

符号形式

我把这一切都做好了。我不确定的一件事是,当数据库中的相关条目被删除时,如何删除上传文件夹中上传的图像。

我真的需要一个想法,怎样做才能朝着正确的方向前进。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-15 22:33:22

你们都是对的我对实体中的代码做了var转储..。

代码语言:javascript
代码运行次数:0
复制
 /**
 * @ORM\PostRemove
 */
public function removeUpload()
{
    if(file_exists($file)) {
        if ($file = $this->getAbsolutePath()) {
            unlink($file);
        }
    }    
}

如果文件存在,$file将显示一个空变量。在上传过程中,它将变量保存为$logo

我将代码更改为

代码语言:javascript
代码运行次数:0
复制
 /**
 * @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
EN

Stack Overflow用户

发布于 2013-11-15 20:53:21

在删除操作中,必须手动删除文件。我假设您将把文件路径存储在数据库中,所以这应该比较容易。

代码语言:javascript
代码运行次数: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文档

票数 0
EN

Stack Overflow用户

发布于 2013-11-15 22:22:48

您可能正在搜索的是Doctrine2生命周期。只需向实体添加一个方法:

代码语言:javascript
代码运行次数:0
复制
/**
 * @ORM\PreRemove
 */
public function deleteImage()
{
    // unlink your image and what not.
}

还不要忘记实体类的@ORM\HasLifecycleCallbacks()注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20010076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档