Постоянный связанный объект - PullRequest
0 голосов
/ 05 ноября 2011

Используя FOSUserBundle, я пытаюсь сохранить связанные сущности. Я расширил User новой сущностью UserInfo. При сохранении с использованием каскадной функции:

Столбец user_id в связанной сущности userinfo не заполняется значением id от сущности user при регистрации:

Пользователь:

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

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

Пользователь

class UserInfo
{
...

/**
 * @ORM\OneToOne(targetEntity="User", inversedBy="userinfo")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */
protected $user;

...
}

Какой идентификатор является правильным способом сохранения связанных сущностей FOSUserBundle.

Надеюсь, я все хорошо объяснил, пожалуйста, дайте мне знать, если я смогу уточнить.

1 Ответ

0 голосов
/ 10 декабря 2011

Не видя вашего метода установки для $ userinfo, я могу только догадываться, но у меня была похожая проблема. В моей ситуации проблема заключалась в том, что я не установил соответствующее свойство mappedBy в установщике для свойства inversedBy.

Попробуйте следующее:

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