Как сказал предыдущий ответчик, вам не следует устанавливать его с обеих сторон. Так что решайте, в какую сторону вы хотите.
Отношение «один к одному» - это, по сути, одно и то же отношение «один ко многим», с той лишь разницей, что на «отображаемой» стороне запись не может быть более одного раза.
У вас есть 2 варианта там. Настройка профиля для пользователя или настройка пользователя для профиля.
1) Если при запуске вы создаете пользователей, а затем создаете профили - вы должны поместить сеттеры / геттеры в сторону профиля
2) Если при запуске вы создаете профили, а затем пользователей, вы должны разместить сеттеры / геттеры на стороне пользователя
Вам не нужно отображать / инвертировать в отношении oneToOne ...
Проверьте следующий пример рабочего кода. (Таким образом, мы разместим сеттеры / геттеры на стороне объекта профиля)
/**
* One Profile has One User.
* @ORM\OneToOne(targetEntity="User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
public function setUser(User $user)
{
$this->user = $user;
}
public function getUser()
{
return $this->user();
}
пс. В целом, я думаю, вы пытаетесь сделать некоторые простые вещи с этим отношением. Почему бы просто не создать одну сущность? Зачем вам здесь два с одним к одному?