What I want to achieve:
User entity have UserInfo property where is stored all info about User. I wan't to create UserInfo entity when User entity is created and link these two.
UserType:
...
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username')
->add('password', 'password') //drugi argument robi input jako password
;
$builder->add('info', new UserInfoType());
}
...
User:
...
/**
* @var UserInfo
*
* @ORM\OneToOne(targetEntity="UserInfo", mappedBy="owner", cascade={"persist", "remove"})
* */
private $info;
...
UserInfo:
/**
* @var User
*
* @ORM\OneToOne(targetEntity="User", inversedBy="info", cascade={"persist"})
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
**/
private $owner;
...
/**
* Set owner
*
* @param \Custom\AzureusBundle\Entity\User $owner
* @return UserInfo
*/
public function setOwner(\Custom\AzureusBundle\Entity\User $owner)
{
$owner->setInfo($this);
$this->owner = $owner;
return $this;
}
Why after creating User and UserType at the same time (same form) userInfo hasn't owner_id value in database? These entities are not linking each other after creating.
I assume that I should call setOwner() function somewhere. But I don't know where.