mongoDB-ContextErrorException:警告:非法偏移



我已经使用注释作为将文档的Id作为MongoBinData对象

namespace  ProfileUserBundleDocument;
use DoctrineODMMongoDBMappingAnnotations as MongoDB;
/**
* User Document 
*  
*@MongoDBDocument(
*  collection="Users",
*  repositoryClass = "ProfileUserBundleDocumentUsersRepository"
* )
* 
* @author ahmedhamdy
*/
class Users {
/**
* 
* @var bin_uuid
* 
* @MongoDBId(strategy = "UUID") 
* 
*/
protected $id;

/**
*
* @var string 
* 
* @MongoDBField(type = "string",name = "Email")
* 
*/
protected $email;    
//...

当我试图通过电子邮件从MongoDB获取对象时,比如:

$dm = $this->get('doctrine_mongodb')->getManager();
$user = $dm->getRepository('ProfileUserBundle:Users')->findOneBy(array(
'email' => 'xxxx@hotmail.com',
));
var_dump($user);

然后抛出异常:

ContextErrorException: Warning: Illegal offset type in /var/www/xxxxx/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/UnitOfWork.php line 1544
  • 如何使用MongoBinData对象
  • 如何从MongoBinData对象类型中插入id为的新Users对象
  • 有什么方法可以将MongoBinData对象转换为字符串吗

此功能目前正在PR#444中进行开发。PR中引入的测试用例还将演示如何对标识符字段使用特殊类型,直到我们有机会在文档中编写新的示例。

关于将MongoBinData转换为字符串值,您应该访问$bin属性,而不是使用MongoBinData::__toString()。__toString()方法在将MongoBinData强制转换为字符串时也会调用,它将返回"<Mongo Binary Data>",而不考虑其中存储的二进制数据。

相关内容

  • 没有找到相关文章

最新更新