Mongodb 将条令2 ODM文档持久化到Mongo(GridFS)时出错
我试图通过Symfony2中的ODM将文档持久化到MongoDB(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
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;
}
我目前还没有解决方案,但是这个问题在中被引用了,所以我想链接到上下文,以防在研究了这个问题后出现一个解决方案。