文件上载-它删除文件,但不删除路径-Symfony2/Doctrine2

文件上载-它删除文件,但不删除路径-Symfony2/Doctrine2,symfony,doctrine-orm,Symfony,Doctrine Orm,我已经添加了上传文件的功能,但是我有一个小问题。我实际上是从该部分复制了函数。我没有使用classDocument,而是有一个classFriend: //... /** * @Assert\File(maxSize="6000000") */ public $picture; /** * @ORM\Column(type="string", length=255, nullable=true) */ private $path;

我已经添加了上传文件的功能,但是我有一个小问题。我实际上是从该部分复制了函数。我没有使用class
Document
,而是有一个class
Friend

//...
/**
     * @Assert\File(maxSize="6000000")
     */
    public $picture;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $path;
//...
上传和编辑工作,但我有问题时删除。我想有两个选项-
删除图片
删除图片
-第一个选项只会将当前路径设置为
null
,文件将保留在存储文件的文件夹中,而第二个选项将设置为path to
null
,并将删除文件

坏消息是我无法将路径设置为
null
。文件被删除,但路径保持不变

这是文档中的功能:

   /**
     * @ORM\PostRemove()
     */
    public function removeUpload()
    {
        if ($picture = $this->getAbsolutePath()) {
            unlink($picture);
        }
    } 

public function getAbsolutePath()
    {
        return null === $this->path ? null : $this->getUploadRootDir().'/'.$this->path;
    }
这是我的控制器中的操作:

public function removePictureAction($id)
    {
        $em = $this->getDoctrine()->getEntityManager(); 
         $friend = $em->getRepository('EMMyFriendsBundle:Friend')->find($id);
         $friend->removeUpload();
         $var=null;
         $friend->setPath($var);
         return $this->redirect($this->generateUrl('friend_id', array('id' => $id))); 
    }

但这条路不会改变。。。如何删除它并再次将其设置为空?

您需要保留好友实体并刷新实体管理器

您需要保留好友实体并刷新实体管理器

是。。。它正在工作。我不知道该如何感谢你这么快地回答了我所有愚蠢的问题!对它正在工作。我不知道该如何感谢你这么快地回答了我所有愚蠢的问题!