Mongodb 将条令2 ODM文档持久化到Mongo(GridFS)时出错

Mongodb 将条令2 ODM文档持久化到Mongo(GridFS)时出错,mongodb,symfony,doctrine-orm,gridfs,doctrine-odm,Mongodb,Symfony,Doctrine Orm,Gridfs,Doctrine Odm,我试图通过Symfony2中的ODM将文档持久化到MongoDB(GridFS),但是当我试图持久化文档时,我收到了这个错误 PHP Catchable fatal error: Argument 1 passed to Doctrine\MongoDB\GridFSFile::setMongoGridFSFile() must be an instance of MongoGridFSFile, null given, called in /path/to/project/vendor/do

我试图通过Symfony2中的ODM将文档持久化到MongoDB(GridFS),但是当我试图持久化文档时,我收到了这个错误

PHP Catchable fatal error:  Argument 1 passed to Doctrine\MongoDB\GridFSFile::setMongoGridFSFile() must be an instance of MongoGridFSFile, null given, called in /path/to/project/vendor/doctrine/mongodb/lib/Doctrine/MongoDB/GridFS.php on line 97 and defined in /path/to/project/vendor/doctrine/mongodb/lib/Doctrine/MongoDB/GridFSFile.php on line 154
奇怪的是,当我检查MongoDB时,文件就在那里,我可以下载它

我已经检查了文件的权限,这不是问题所在

实体:

namespace Path\Here\SomeBundle\Document;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;


/**
 * @ODM\Document(db="files_and_stuff",collection="fs",slaveOkay=true)
 */

class UploadFile
{
    /**
     * @ODM\Id
     */
    private $id;

    /** @ODM\File */
    private $file;

    /** @ODM\String */
    private $filename;

    /** @ODM\String */
    private $mimeType;

    /** @ODM\Date */
    private $uploadDate;

    /** @ODM\Int */
    private $length;

    /** @ODM\Int */
    private $chunkSize;

    /** @ODM\String */
    private $md5;

    public function getId()
    {
        return $this->id;
    }

    public function getFile()
    {
        return $this->file;
    }

    public function setFile($file)
    {
        $this->file = $file;
    }

    public function getFilename()
    {
        return $this->filename;
    }

    public function setFilename($filename)
    {
        $this->filename = $filename;
    }

    public function getMimeType()
    {
        return $this->mimeType;
    }

    public function setMimeType($mimeType)
    {
        $this->mimeType = $mimeType;
    }

    public function getChunkSize()
    {
        return $this->chunkSize;
    }

    public function getLength()
    {
        return $this->length;
    }

    public function getMd5()
    {
        return $this->md5;
    }

    public function getUploadDate()
    {
        return $this->uploadDate;
    }

}
经理方法:

public function uploadDocument() {

    $fileName = uniqid();

    $tmpPath = "/tmp/" . $fileName;
    imagepng($image, $tmpPath, 0);

    $UploadFile = new UploadFile();
    $UploadFile->setFilename($fileName);
    $UploadFile->setMimeType('image/png');
    $UploadFile->setFile($tmpPath);

    $this->dm->persist($UploadFile);
    $this->dm->flush();

    unlink($tmpPath);

    return $UploadFile;

}

我目前还没有解决方案,但是这个问题在中被引用了,所以我想链接到上下文,以防在研究了这个问题后出现一个解决方案。