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



我已经按照这个添加了上传文件的功能,但我有一个小问题。实际上,我复制了Using Lifecycle Callbacks部分中的函数。我有一个Friend类,而不是Document类,它是:

//...
/**
     * @AssertFile(maxSize="6000000")
     */
    public $picture;
    /**
     * @ORMColumn(type="string", length=255, nullable=true)
     */
    private $path;
//...

上传和编辑工作,但我在删除时有问题。我想要两个选项-Remove the pictureDelete the picture-第一个选项只将当前路径设置为null,文件将保留在存储文件的文件夹中,而第二个选项将设置为null的路径,并将删除文件。

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

这是文档中的功能:

   /**
     * @ORMPostRemove()
     */
    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))); 
    }

但这条路一直走着。。。如何删除它并再次设置为null?

您需要持久化您的好友实体并刷新实体管理器

相关内容

  • 没有找到相关文章

最新更新