我有mongodb和doctrine的映射问题。
我有一个名为state的属性映射为Integer,但是当我获取对象并转储数据时,我得到以下输出:
对象(Me \ MyBundle \ Document \ User)#249(5){[" id":protected] => string(24)" 53320c8b03f69d6573a0d510" ["电子邮件":保护] => string(26)" user@gmail.com" ["密码":保护] => string(24)" 0251db0188235d115b6caz8t" ["盐":保护] => string(40)" 699fd11d7128344ac8548a8774516338057df384" ["状态":"我\ MyBundle \文献\用户":私人] => NULL}
如您所见,状态类型为:" Me \ MyBundle \ Document \ User"这很奇怪。
当我保存用户文档时,状态属性正确保存,但是当我获取文档时,状态为NULL并错误地键入。
这是我的实体代码。
<?php
namespace Me\MyBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\EquatableInterface;
/**
* @MongoDB\Document(collection="user")
*/
class User implements UserInterface, EquatableInterface
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\String
* @MongoDB\UniqueIndex(name="unique_email", safe=true)
*/
protected $email;
/**
* @MongoDB\String
*/
protected $password;
/**
* @MongoDB\String
*/
protected $salt;
/**
* @MongoDB\Int
*/
private $state;
const STATE_INACTIVE = -1;
const STATE_NEW = 0;
const STATE_ACTIVE = 1;
const STATE_PROMOTED = 2;
}
(我省略了getters和setter,因为它们和doctrine生成的通常的getter / setter一样)