Php FosUserBundle不在mongodb数据库中持久化数据

Php FosUserBundle不在mongodb数据库中持久化数据,php,mongodb,symfony,fosuserbundle,Php,Mongodb,Symfony,Fosuserbundle,我使用symfony2和mongoDb ODM。今天我安装了FosUserBundle 我的用户类是这样的: use FOS\UserBundle\Document\User as BaseUser; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; /** * @MongoDB\Document */ class User e

我使用symfony2和mongoDb ODM。今天我安装了FosUserBundle

我的用户类是这样的:

use FOS\UserBundle\Document\User as BaseUser;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;


/**
 * @MongoDB\Document
 */
class User extends BaseUser
{

    /**
     * @MongoDB\Id(strategy="auto")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
    }

}
我的问题是在使用FosUserBundle create命令创建了一个用户之后,mongodb文档中只保留了用户的id

如果我在我的用户类中添加以下内容:

    /**
     * @MongoDB\String
     */
    protected $username;
创建命令persist Id和正确的用户名。 当然,FOS\UserBundle\Document\User BaseUser的所有初始字段都是相同的。

看起来该字段工作不正常

检查config.yml中的条令配置是否设置为:

auto_mapping: true
要以另一种方式解决此问题,您需要将完整的映射信息添加到用户实体中,并从FOSUserBundle扩展该映射信息

对于条令\ORM,通常是@ORM\MappedSuperClass注释,它为扩展类提供映射。在FOSUserBundle的mongodb xml映射中,它是这样一行:

 ...
 <mapped-superclass name="FOS\UserBundle\Document\User" collection="fos_user_user">
 ...
解决方案1:

试试这个:

将over-to-UserBundle复制到Resources/config/doctor/User.mongogb.xml中

将其更改为适合您自己的实体类

删除映射的超类节点

使用自动策略将id字段添加为id

然后,您可以将@MongoDB注释完全复制到实体上

看起来机器工作不正常

检查config.yml中的条令配置是否设置为:

auto_mapping: true
要以另一种方式解决此问题,您需要将完整的映射信息添加到用户实体中,并从FOSUserBundle扩展该映射信息

对于条令\ORM,通常是@ORM\MappedSuperClass注释,它为扩展类提供映射。在FOSUserBundle的mongodb xml映射中,它是这样一行:

 ...
 <mapped-superclass name="FOS\UserBundle\Document\User" collection="fos_user_user">
 ...
解决方案1:

试试这个:

将over-to-UserBundle复制到Resources/config/doctor/User.mongogb.xml中

将其更改为适合您自己的实体类

删除映射的超类节点

使用自动策略将id字段添加为id


然后,您可以将@MongoDB注释完全复制到实体上

节省某人的时间


我还遇到了ODM用户实体的非工作映射问题,无法理解为什么它不工作。原因是我必须从FOS\UserBundle\Document\user而不是从FOS\UserBundle\Model\user扩展我的用户实体,以节省某人的时间


我还遇到了ODM用户实体的非工作映射问题,无法理解为什么它不工作。原因是我必须从FOS\UserBundle\Document\user而不是从FOS\UserBundle\Model\user扩展我的用户实体

我的答案是否有帮助,或者您是否希望以各种方式运行映射的超类?我的答案是否有帮助,或者您是否希望以各种方式运行映射的超类?您的答案帮助了我!实际上,我在项目中使用静态映射。所以我评论了auto_映射:在条令配置中为true。这条线已取消,所有工程:你的回答帮助我!实际上,我在项目中使用静态映射。所以我评论了auto_映射:在条令配置中为true。这条线已取消,所有工程: