Php 持续相关实体

Php 持续相关实体,php,doctrine,doctrine-orm,symfony,Php,Doctrine,Doctrine Orm,Symfony,使用FOSUserBundle,我试图持久化相关的实体。我用一个名为UserInfo的新实体扩展了User。使用级联函数进行持久化时: 注册时,相关userinfo实体中的user_id列未填充用户实体的id值: 用户实体: /** * @ORM\Entity * @ORM\Table(name="re_user") */ class User extends BaseUser { ... /** * @ORM\OneToOne(targetEntity="UserInfo"

使用FOSUserBundle,我试图持久化相关的实体。我用一个名为UserInfo的新实体扩展了User。使用级联函数进行持久化时:

注册时,相关userinfo实体中的user_id列未填充用户实体的id值:

用户实体:

/**
* @ORM\Entity
* @ORM\Table(name="re_user")
*/
class User extends BaseUser
{
...

    /**
     * @ORM\OneToOne(targetEntity="UserInfo", mappedBy="user", cascade={"persist", "remove"})
     */
    protected $userinfo;
使用者

什么是持久化相关FOSUserBundle实体的正确方法


我希望我已经解释清楚了,请让我知道我是否可以进一步澄清。

如果没有看到$userinfo的setter方法,我只能猜测,但我有一个类似的问题。在我的情况下,问题是我没有在setter中为inversedBy属性设置相关的mappedBy属性

请尝试以下操作:

<?php
// ...
class User extends BaseUser {
  // ...
  public function setUserinfo(UserInfo $userinfo) {
    $userinfo->setUser($this);
    $this->userinfo = $userinfo;
  }
}

相关问题:您是否在代码中对UserInfo::$user进行了任何赋值?我不确定您所说的赋值是什么意思,但我已经在上面包含了我的UserInfo实体的一部分,其中JoinColumn的用户id引用了用户实体的id。
<?php
// ...
class User extends BaseUser {
  // ...
  public function setUserinfo(UserInfo $userinfo) {
    $userinfo->setUser($this);
    $this->userinfo = $userinfo;
  }
}